Java 游戏结束,功能不正常?
目前,我有一个简单的射击游戏,精灵在屏幕上飞过,当他们被按下时,它会增加用户的分数1。问题是我想要它,所以我为gameover声明了一个布尔值,当游戏开始时,它将被初始化为false,当计时器用完时,它将被声明为true。我现在的代码是这样的,当计时器用完时,gameover被设置为true,但是由于某种原因,它默认为true,而不是等待计时器用完。知道为什么吗Java 游戏结束,功能不正常?,java,android,canvas,Java,Android,Canvas,目前,我有一个简单的射击游戏,精灵在屏幕上飞过,当他们被按下时,它会增加用户的分数1。问题是我想要它,所以我为gameover声明了一个布尔值,当游戏开始时,它将被初始化为false,当计时器用完时,它将被声明为true。我现在的代码是这样的,当计时器用完时,gameover被设置为true,但是由于某种原因,它默认为true,而不是等待计时器用完。知道为什么吗 /* Member (state) fields */ private GameLoopThread gameLoopThread
/* Member (state) fields */
private GameLoopThread gameLoopThread;
private Paint paint; //Reference a paint object
/** The drawable to use as the background of the animation canvas */
private Bitmap mBackgroundImage;
private Sprite sprite;
private int hitCount;
/* For the countdown timer */
private long startTime ; //Timer to count down from
private final long interval = 1 * 1000; //1 sec interval
private CountDownTimer countDownTimer; //Reference to class
private boolean timerRunning = false;
private String displayTime; //To display time on the screen
private boolean gameOver;
private int highscore = 0;
/* Countdown Timer - private class */
private class MyCountDownTimer extends CountDownTimer {
public MyCountDownTimer(long startTime, long interval) {
super(startTime, interval);
}
public void onFinish() {
displayTime = "Times Over!";
timerRunning = false;
countDownTimer.cancel();
gameOver = true;
if (hitCount > highscore) {
highscore= hitCount;
}
}
public void update(){
//if (gameOver = true){
sprite.update();
//}
}
我可能是错的,但这里出现的这个gameOver=true会产生这种行为。您使用的是赋值=,而不是等式验证= 在这种情况下,您应该编写if gameOver==true{,或者更简单地说:if gameOver{ 除此之外,我不知道您可能犯了什么错误,因为布尔基元变量的默认值确实是假的 下面是我做的一个小测试,以确保我的假设。我运行:
public class Test {
public static boolean x;
public static void main(String[] args) {
System.out.println(x);
if (x = true)
System.out.println(x);
}
}
并得到了输出:
false
true
是的,这样做了,我对他们进行了评论,以确保游戏能够运行平等验证。