首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >时间处理程序中的时间处理程序

时间处理程序中的时间处理程序
EN

Stack Overflow用户
提问于 2015-02-12 12:54:28
回答 1查看 68关注 0票数 0
代码语言:javascript
复制
 TimerHandler timer =  new TimerHandler(.7f, true,  new ITimerCallback() {
                    private int grab_shell=0;
                    private int loop_count=0;

                    public void onTimePassed(TimerHandler pTimerHandler) {

                        if ((shell[0].getCurrentTileIndex()>0)&&(loop_count==0))
                        {
                            grab_shell=shell[0].getCurrentTileIndex();
                            shell[0].setCurrentTileIndex(0);
                        }
                        if(grab_shell>0)
                        {   
                            current_house++;
                            if(current_house==15)
                            {
                                current_house=0;
                            }
                            if((grab_shell==1)&&(current_house!=7)&&(shell[current_house].getCurrentTileIndex()!=0))
                            {

                                    grab_shell=2+shell[current_house].getCurrentTileIndex();
                                    shell[current_house].setCurrentTileIndex(0);

                                }
                            }

                            else if ((grab_shell==1)&&(current_house!=7)&&(shell[current_house].getCurrentTileIndex()==0))
                            {
                                shell[7].setCurrentTileIndex(shell[current_house].getCurrentTileIndex()+1);
                                shell[current_house].setCurrentTileIndex(0);
                            }
                            shell[current_house].setCurrentTileIndex(shell[current_house].getCurrentTileIndex()+1);
                            grab_shell--;
                        }

                        if(grab_shell==0)
                        {
                        unregisterUpdateHandler(pTimerHandler);
                        }
                        loop_count++;
                        }

我的问题是如何在此代码中创建延迟。

代码语言:javascript
复制
    if((grab_shell==1)&&(current_house!=7)&&(shell[current_house].getCurrentTileIndex()!=0))
       {        grab_shell=2+shell[current_house].getCurrentTileIndex();
                                    shell[current_house].setCurrentTileIndex(0);
                            }

此代码位于计时器处理程序中。我怎么能这么做?请给我看看。与其他条件相比,这部分代码有两个操作,这就是为什么我必须将这个部分稍微延迟1.4秒的原因。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-12 13:49:40

定时器处理程序可以嵌套。这意味着您可以在计时器处理程序中有一个计时器处理程序。唯一需要确保的是取消注册处理程序,以避免不必要的行为。我还假设您希望使用您所指出的if语句创建计时器处理程序。

代码语言:javascript
复制
TimerHandler timer =  new TimerHandler(.7f, true,  new ITimerCallback() {
                private int grab_shell=0;
                private int loop_count=0;

                public void onTimePassed(TimerHandler pTimerHandler) {

                    if ((shell[0].getCurrentTileIndex()>0)&&(loop_count==0))
                    {
                        grab_shell=shell[0].getCurrentTileIndex();
                        shell[0].setCurrentTileIndex(0);
                    }
                    if(grab_shell>0)
                    {   
                        current_house++;
                        if(current_house==15)
                        {
                            current_house=0;
                        }
                        if((grab_shell==1)&&(current_house!=7)&&(shell[current_house].getCurrentTileIndex()!=0))
                        {
                    //here
                    TimerHandler timer =  new TimerHandler(1.4f, true,  new ITimerCallback() {

                    @Override
                    public void onTimePassed(TimerHandler pTimerHandler) {
                    grab_shell=2+shell[current_house].getCurrentTileIndex();
                    shell[current_house].setCurrentTileIndex(0);
                   //unregister timer handler

                    }

                 });

                            }
                        }

                        else if ((grab_shell==1)&&(current_house!=7)&&(shell[current_house].getCurrentTileIndex()==0))
                        {
                            shell[7].setCurrentTileIndex(shell[current_house].getCurrentTileIndex()+1);
                            shell[current_house].setCurrentTileIndex(0);
                        }
                        shell[current_house].setCurrentTileIndex(shell[current_house].getCurrentTileIndex()+1);
                        grab_shell--;
                    }

                    if(grab_shell==0)
                    {
                    unregisterUpdateHandler(pTimerHandler);
                    }
                    loop_count++;
                    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28478027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档