Java ITimerHandler在AndEngine GLES2中经过1秒时减少了2,而不是1
我想在安德林倒计时,间隔1秒,出于某种原因,不是1秒后减少1,而是减少2。这是我的代码: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
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) {
//
}
}
}));
}