0

私はlibgdxでゲームを作っています。ゲームの開始時にチュートリアルを表示し、数秒後に消えるようにしたい.私のコードは以下のとおりです

public class HeroCar{
static final int TUTE_STATE_SHOW = 0;
static final int TUTE_STATE_HIDE = 1;
int tuteState;
float tuteStateTime = 0;
public HeroCar()
{
tuteState = TUTE_STATE_SHOW;
}

public void update(float deltaTime){

if(tuteStateTime >= 0.56f){
tuteStateTime = 0; 
tuteState = TUTE_STATE_HIDE;
}
else{
tuteState = TUTE_STATE_SHOW;
}
tuteStateTime += deltaTime;
}

and in game play screen class render method my code is

if(world.heroCar.tuteState == HeroCar.TUTE_STATE_SHOW){

spriteBatch.draw(Assets.speedingup_region, 480 / 2 - 172 / 2, 400, 172, 30);

}
}
4

3 に答える 3

1

または、車の距離を使用することもできます

if(herocar.position.x<50&&canShowTute)
{
fon.draw(batcher,string,posx,posy);
}
 else if(herocar.position.x>50&&canShowTute)
 {
canShowTute=false;
  }

このようにして、statetimeの変数を管理する必要はありません

また、車が一定の距離を超えた場合、次回はチュートを表示する必要はありません。

于 2013-06-30T15:07:23.867 に答える
0
if(tuteStateTime >= 0.56f){
 tuteStateTime = 0; //--------------wrong
 tuteState = TUTE_STATE_HIDE;
 }

設定しない

tuteStateTime = 0

0 を設定すると、次のサイクルで time > 0.56f がチェックされ、else ブロックに移動して state = show が設定されるため、チュートリアルが消えることはありません。常に表示状態のままです。

于 2013-06-30T13:51:22.880 に答える