我正在建造一个拥有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);
}
抱歉在询问时不发布
答案 0 :(得分:0)
如果你想在游戏结束时停止计时器,那么在函数toGameOver()中你需要调用one.cancel()这将导致取消计时器。然后当游戏重新开始时,你应该调用one.start()