【问题标题】:How to make a chronometer in AndEngine?如何在 AndEngine 中制作计时器?
【发布时间】:2012-12-25 13:03:50
【问题描述】:

我正在制作一个 Race Game,现在我想实现一个显示您的时间的时钟/计时器。

我想在一个 ChangeableText 中显示实际时间,在另一个 ChangeableText 中显示最佳单圈时间。

如何每秒或每 0.1 秒更新时间??

我如何检测一圈何时结束,例如在终点线(确定 x 和 y 位置)??

谢谢。

【问题讨论】:

    标签: android andengine chronometer


    【解决方案1】:

    试试这个:

    int count=60;
    youScene.registerUpdateHandler(new TimerHandler(1f, true, new ITimerCallback() {
            @Override
            public void onTimePassed(TimerHandler pTimerHandler) {
                    count--;
                    youchangeabletext.setText(String.valueof(count));  
                    if(count==0){
                     youScene.unregisterUpdateHandler(pTimerHandler);
                     //GameOver();
                     }        
                   pTimerHandler.reset();
    
            }
    }));
    

    参数“1f”是本例中运行方法的时间 1f = 1 秒,现在每秒运行该方法,当计数为“0”时,该方法从游戏中移除。

    现在为了检测一圈完成情况,您可以扩展您汽车的 Sprite 类:

    public class Car extends AnimatedSprite {
                public Car(final float pX, final float pY, final TiledTextureRegion pTextureRegion, final VertexBufferObjectManager pVertexBufferObjectManager) {
                    super(pX, pY, pTextureRegion, pVertexBufferObjectManager);
                }
    //the method onManagedUpdate run in milliseconds
                @Override
                protected void onManagedUpdate(final float pSecondsElapsed) {
                     //for example when car is in the position 100 in x
                    if(this.getX()>=100){
                              //lap finish
                    }
                    super.onManagedUpdate(pSecondsElapsed);
                }
            }
    

    【讨论】:

      【解决方案2】:
      int time=110;
      
      timerText = new Text(700, 440, resourcesManager.font, "10", new TextOptions(HorizontalAlign.RIGHT), vbom);
      
      TimerHandler mTime = new TimerHandler(0.1f,true, new ITimerCallback(){
      
           @Override
      
           public void onTimePassed(TimerHandler pTimerHandler) {
      
                // TODO Auto-generated method stub
      
                time--;
      
                timerText.setText(""+(time/10));
      
                if(time==0){
      
                   //Do something
      
                }
      
          }
      
       });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-14
        • 2018-10-07
        • 1970-01-01
        • 2013-03-26
        • 2019-10-10
        • 2012-04-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多