3

私はレース ゲームを作成していますが、時間を表示する時計/クロノメーターを実装したいと考えています。

ChangeableText で実際のタイムを表示し、別の ChangeableText でベストラップ タイムを表示したいと考えています。

毎秒または0.1秒ごとに時間を更新するにはどうすればよいですか??

たとえば、フィニッシュラインでラップがいつ終了したかを検出するにはどうすればよいですか (x と y の位置を決定する)??

ありがとう。

4

2 に答える 2

7

これを試して:

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」の場合、メソッドはゲームから削除されます。

ラップフィニッシュを検出するために、車のスプライトクラスを拡張できます。

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);
            }
        }
于 2012-12-26T18:23:30.197 に答える