时间处理程序在AndEngine中重复n次

时间:2013-05-31 06:16:30

标签: android andengine

如何创建一个在AndEngine

中重复n次的时间处理程序

我正在使用它,但它只能使用一次

private void createSpriteSpawnTimeHandler() {
    TimerHandler spriteTimerHandler;


    spriteTimerHandler = new TimerHandler(5, new ITimerCallback() {

                @Override
                public void onTimePassed(TimerHandler pTimerHandler) {

                    initHardware();
                }
            });

    getEngine().registerUpdateHandler(spriteTimerHandler);
}

3 个答案:

答案 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);
相关问题