gpt4 book ai didi

java - boolean 值没有按预期改变

转载 作者:行者123 更新时间:2023-12-02 02:57:00 24 4
gpt4 key购买 nike

已解答 - 赛车状况

所以这是我正在制作的生成障碍物的游戏的类,每次障碍物离开屏幕时,它都会移除障碍物并增加分数。这工作正常,但是 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com