-6

私は3つの「命」とダウンするタイマーを備えた小さなゲームを構築しています。ライフが終了するか、タイマーがゼロになると、「ゲームオーバー」アクティビティに移動するように指示しました。ゲーム オーバーには、ウェルカム アクティビティに移動する「再試行」ボタンがあり、もう一度開始できます。問題は、タイマーとライフが正常であっても、次のゲームでゲームオーバー アクティビティに移行するため、前のゲームのタイマーがまだ実行されていると思います。

誰かが「再試行」を押したときにアプリをスタートモードにリセットする方法はありますか?

ありがとう :)

編集:私のコード:これは時間が終了し、ゲームオーバー アクティビティに移行するときです。

 @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test);
    ImageView iv =(ImageView) findViewById(R.id.imageView1);
    final TextView mTextField = (TextView) findViewById(R.id.textView2);
    CountDownTimer one = new CountDownTimer(30000, 1000) {

     public void onTick(long millisUntilFinished) {
         mTextField.setText("time: " + millisUntilFinished / 1000);
     }

     public void onFinish() {

         toGameOver(null);

     }
  }.start();

}




public void toGameOver (View view)
{
    Intent intent = new Intent(this,GameOverActivity.class);
    intent.putExtra(EXTRA_MESSAGE, points.toString());
    startActivity(intent);

}

これは、ライフが終了し、ゲームオーバー アクティビティに移行するときです。

public void changepic(View view)
{
    boolean isCorrect=false;
    int n = 8;
    ImageView iv =(ImageView) findViewById(R.id.imageView1);
    TextView tv = (TextView) findViewById(R.id.textView1);  
    if(rndInt<3&&rndInt>0){
        isCorrect=true;
        points++;
    }

    if(!isCorrect&&lives==0)
        toGameOver(null);
    if (!isCorrect&&lives==1&&rndInt!=0)
    {
        lives--;
        ImageView iv1 = (ImageView) findViewById(R.id.imageView3);
        iv1.setVisibility(View.INVISIBLE);
    }
    if (!isCorrect&&lives==2&&rndInt!=0)
    {
        lives--;
        ImageView iv1 = (ImageView) findViewById(R.id.imageView4);
        iv1.setVisibility(View.INVISIBLE);
    }
    if (!isCorrect&&lives==3&&rndInt!=0)
    {
        lives--;
        ImageView iv1 = (ImageView) findViewById(R.id.imageView2);
        iv1.setVisibility(View.INVISIBLE);
    }

そして、これは私が始めたいときのゲームオーバーアクティビティです:

public void goToStart (View view)
{
    Intent intent = new Intent(this,WelcomeActivity.class);
    startActivity(intent);

}

質問時に投稿せずに申し訳ありません

4

1 に答える 1

0

ゲームが終了したときにタイマーを停止したい場合は、関数 toGameOver() 内で one.cancel() を呼び出す必要があります。これにより、タイマーがキャンセルされます。その後、ゲームが再起動したら、 one.start() を呼び出す必要があります

于 2012-11-23T02:00:13.827 に答える