如何创建一个在AndEngine
中重复n次的时间处理程序我正在使用它,但它只能使用一次
private void createSpriteSpawnTimeHandler() {
TimerHandler spriteTimerHandler;
spriteTimerHandler = new TimerHandler(5, new ITimerCallback() {
@Override
public void onTimePassed(TimerHandler pTimerHandler) {
initHardware();
}
});
getEngine().registerUpdateHandler(spriteTimerHandler);
}
答案 0 :(得分:2)
private TimerHandler spriteTimerHandler;
private void createSpriteSpawnTimeHandler() {
spriteTimerHandler = new TimerHandler(5, true, new ITimerCallback() {
int counter = 0;
@Override
public void onTimePassed(TimerHandler pTimerHandler) {
counter++;
initHardware();
if(counter >= 5) {
mEngine.unregisterUpdateHandler(spriteTimerHandler);
}
}
});
getEngine().registerUpdateHandler(spriteTimerHandler);
}
答案 1 :(得分:0)
但它运行一次然后我改变了
TimerHandler.java中的lib文件 org.andengine.engine.handler.timer
public TimerHandler(final float pTimerSeconds, final ITimerCallback pTimerCallback) {
this(pTimerSeconds, false, pTimerCallback);
}
到
public TimerHandler(final float pTimerSeconds, final ITimerCallback pTimerCallback) {
this(pTimerSeconds, true, pTimerCallback);
}
现在它无限地工作
答案 2 :(得分:0)
TimerHandler abc;
abc=new TimerHandler(1, true, new ITimerCallback() {
int counter=0;
@Override
public void onTimePassed(final TimerHandler pTimerHandler) {
counter++;
if(counter >= 60) {
mEngine.unregisterUpdateHandler(abc);
}
elapsedText.setText("Seconds elapsed: " +counter);
//fpsText.setText("FPS: " + fpsCounter.getFPS());
}
});
getEngine().registerUpdateHandler(abc);