私は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);
}
質問時に投稿せずに申し訳ありません