Java ITimerHandler在AndEngine GLES2中经过1秒时减少了2,而不是1

Java ITimerHandler在AndEngine GLES2中经过1秒时减少了2,而不是1,java,andengine,Java,Andengine,我想在安德林倒计时,间隔1秒,出于某种原因,不是1秒后减少1,而是减少2。这是我的代码: private void createTimeHandler() { engine.registerUpdateHandler(new TimerHandler(1, new ITimerCallback(){ @Override public v

我想在安德林倒计时,间隔1秒,出于某种原因,不是1秒后减少1,而是减少2。这是我的代码:

    private void createTimeHandler() {              
         engine.registerUpdateHandler(new TimerHandler(1, new ITimerCallback(){                      
                @Override
                public void onTimePassed(final TimerHandler pTimerHandler) {
                    pTimerHandler.setAutoReset(true);
                    System.out.println("Seconds Elapsed: " + pTimerHandler.getTimerSecondsElapsed());
                    System.out.println("Seconds: " + pTimerHandler.getTimerSeconds());
//                  if(pTimerHandler.getTimerSeconds() == 1.0f) { 
                        System.out.println(ResourcesManager.getInstance().levelTime);
                        ResourcesManager.getInstance().levelTime -= pTimerHandler.getTimerSeconds();
                        timeTitleValue.setText("" + ResourcesManager.getInstance().levelTime);
//                      
//                  }
//                  pTimerHandler.reset();
                    if (ResourcesManager.getInstance().levelTime == 0) {
                            //End screen
                    }
                    if (ResourcesManager.getInstance().levelTime <= 10) {
                            //timerTickSound.play();
                    }
                    if (ResourcesManager.getInstance().levelTime > 0) {

//                          
                    }

                }
       }));
    }
在GameSecene下的CreateSecene方法中添加createTimeHandler()

有人能帮我吗


谢谢

找到了错误。我没有将事件注册到引擎,而是将事件注册到游戏场景

因此,代码如下所示:

private void createTimeHandler() {              
         gameScene.registerUpdateHandler(new TimerHandler(1, new ITimerCallback(){                      
                @Override
                public void onTimePassed(final TimerHandler pTimerHandler) {
                    pTimerHandler.setAutoReset(true);
                    System.out.println("Seconds Elapsed: " + pTimerHandler.getTimerSecondsElapsed());
                    System.out.println("Seconds: " + pTimerHandler.getTimerSeconds());
//                  if(pTimerHandler.getTimerSeconds() == 1.0f) { 
                        System.out.println(ResourcesManager.getInstance().levelTime);
                        ResourcesManager.getInstance().levelTime -= pTimerHandler.getTimerSeconds();
                        timeTitleValue.setText("" + ResourcesManager.getInstance().levelTime);
//                      
//                  }
//                  pTimerHandler.reset();
                    if (ResourcesManager.getInstance().levelTime == 0) {
                            //End screen
                    }
                    if (ResourcesManager.getInstance().levelTime <= 10) {
                            //timerTickSound.play();
                    }
                    if (ResourcesManager.getInstance().levelTime > 0) {

//                          
                    }

                }
       }));
    }
private void createTimeHandler(){
registerUpdateHandler(新的TimerHandler(1,新的ITimerCallback(){
@凌驾
公共无效onTimePassed(最终时间Handler pTimerHandler){
pTimerHandler.setAutoReset(true);
System.out.println(“经过的秒数:+pTimerHandler.getTimerSecondsElapsed());
System.out.println(“秒:+pTimerHandler.getTimerSeconds());
//如果(pTimerHandler.getTimerSeconds()==1.0f){
System.out.println(ResourcesManager.getInstance().levelTime);
ResourcesManager.getInstance().levelTime-=pTimerHandler.getTimerSeconds();
timeTitleValue.setText(“+ResourcesManager.getInstance().levelTime”);
//                      
//                  }
//pTimerHandler.reset();
if(ResourcesManager.getInstance().levelTime==0){
//端屏
}
if(ResourcesManager.getInstance().levelTime 0){
//                          
}
}
}));
}

andengine真的没有文档可言吗?没有,任何关于它的东西:因为你必须自己阅读源代码。让它工作起来。将事件注册到引擎而不是场景中时出错:)
private void createTimeHandler() {              
         gameScene.registerUpdateHandler(new TimerHandler(1, new ITimerCallback(){                      
                @Override
                public void onTimePassed(final TimerHandler pTimerHandler) {
                    pTimerHandler.setAutoReset(true);
                    System.out.println("Seconds Elapsed: " + pTimerHandler.getTimerSecondsElapsed());
                    System.out.println("Seconds: " + pTimerHandler.getTimerSeconds());
//                  if(pTimerHandler.getTimerSeconds() == 1.0f) { 
                        System.out.println(ResourcesManager.getInstance().levelTime);
                        ResourcesManager.getInstance().levelTime -= pTimerHandler.getTimerSeconds();
                        timeTitleValue.setText("" + ResourcesManager.getInstance().levelTime);
//                      
//                  }
//                  pTimerHandler.reset();
                    if (ResourcesManager.getInstance().levelTime == 0) {
                            //End screen
                    }
                    if (ResourcesManager.getInstance().levelTime <= 10) {
                            //timerTickSound.play();
                    }
                    if (ResourcesManager.getInstance().levelTime > 0) {

//                          
                    }

                }
       }));
    }