java - boolean 值没有按预期改变

标签 java if-statement boolean

已解答 - 赛车状况

所以这是我正在制作的生成障碍物的游戏的类,每次障碍物离开屏幕时,它都会移除障碍物并增加分数。这工作正常,但是 boolean 值 (plusScore) 不会按预期更改为 true。

public void update() {
            //
            if(obstacles.get(obstacles.size() - 1).getRectangle().top >= Constants.SCREEN_HEIGHT) {
                int xStart = (int)(Math.random()*(Constants.SCREEN_WIDTH - playerGap));
                obstacles.add(0, new Obstacle(obstacleHeight, color, xStart, obstacles.get(0).getRectangle().top - obstacleHeight - obstacleGap, playerGap));
                obstacles.remove(obstacles.size() - 1);
                score += 10;
                plusScore = true; //Problem here
                tempTime = (int)System.currentTimeMillis();
            }
            if (tempTime + 5 <= System.currentTimeMillis()) {
                plusScore = false; //Unsure if working as relying on above
            }
        }

这(下面)是我调用 boolean 值的地方,我包含了该方法的第一部分,因为我不确定是否可能存在冲突。

public void draw(Canvas canvas) {
   for(Obstacle ob : obstacles)
       ob.draw(canvas);
   Paint paint = new Paint();
   paint.setTextSize(100);
   paint.setColor(Color.BLACK);
   canvas.drawText(" " + score, 50, 50 + paint.descent() - paint.ascent(), paint);

   if(plusScore) { //This is what the Boolean should effect
       Paint paint2 = new Paint();
       paint2.setTextSize(100);
       paint2.setColor(Color.GREEN);
       drawPlusScore(canvas, paint2, "+10!");
   }
}

[只是为了澄清在没有 if 语句时,draw 方法可以正常工作。] 如果问题很明显,我深表歉意,我是第一次学习教程,并决定自己尝试一些东西。

最佳答案

我看到两种可能性:

  1. 您的系统速度足够慢,在第一个 if 中设置该 boolean 值后立即在 update()方法,你落在第二个 if然后将变量设置为 false (我发现这不太可能,但如果你在某种模拟器中运行,也许?)。可能值得进行一些日志记录,以确认绘图发生在将此变量设置为 true 和 false 之间。

  2. plusScore update() 中的变量方法与 plusScore 不同。 draw() 中的变量方法。这两个方法在同一个类中吗?我可以看出你的plusScore变量是代码片段中的一个字段,但如果这两个代码片段不在同一个类中,那么您将处理两个完全独立的变量。

关于java - boolean 值没有按预期改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42928247/

相关文章:

python - 在 Pandas 数据框 boolean 索引中使用 "opposite boolean"的正确方法

java - AWS Java : com. amazonaws.SdkClientException:错误的文件描述符

java - 丰富矩阵与非丰富矩阵

python - Numpy:条件检查后返回 boolean 数组

delphi - 怎么了? (表达式类型必须是 BOOLEAN)

c# - 如何将多个变量与单个条件进行比较?

java - Hibernate 找不到 getter

java - 检测霍夫圆android

java - 嵌套循环在 Mastermind 游戏中无法正常工作

excel - IF 条件 - 连接多个列