gpt4 book ai didi

java - for 循环中嵌套 if 语句 [JAVA/LibGDX]

转载 作者:行者123 更新时间:2023-12-01 20:24:29 25 4
gpt4 key购买 nike

所以我让我的代码来工作这更多是一个关于Java的问题以及为什么它以我得到它的方式工作VS。为什么我写的第一种方式不起作用。这是我写的原始代码。

private void renderGUIExtraLives (SpriteBatch batch){
float x = GUIcamera.viewportWidth - 50 - Constants.LIVES_START * 50;
float y = -15;
for (int i = 0; i < Constants.LIVES_START; i++) {
if (worldController.lives <= i) {
batch.setColor(0.5f, 0.5f, 0.5f, 0.5f);
batch.draw(Assets.instance.bunny.head, x + i * 50, y, 50, 50, 120, 100, 0.35f, -0.35f, 0);
batch.setColor(1, 1, 1, 1);
}
}
}

这不起作用,它没有抛出任何错误,但它没有将生命绘制到屏幕上,我所做的只是删除 if 语句的大括号,如下所示:

private void renderGUIExtraLives (SpriteBatch batch){
float x = GUIcamera.viewportWidth - 50 - Constants.LIVES_START * 50;
float y = -15;
for (int i = 0; i < Constants.LIVES_START; i++) {
if (worldController.lives <= i)
batch.setColor(0.5f, 0.5f, 0.5f, 0.5f);
batch.draw(Assets.instance.bunny.head, x + i * 50, y, 50, 50, 120, 100, 0.35f, -0.35f, 0);
batch.setColor(1, 1, 1, 1);
}
}

现在它神奇地起作用了,有人可以解释为什么在我从嵌套的 if 语句中删除花括号后它起作用吗?我真的很感激,如果有人在 Stack 上有类似问题或答案的链接,那么关于这个主题的任何讨论都会很值得阅读。

最佳答案

您的缩进是错误的且具有误导性。如果删除 if 之后的大括号,则只有下一条语句有条件地执行。这意味着代码基本上是:

for (int i = 0; i < Constants.LIVES_START; i++) {
if (worldController.lives <= i)
batch.setColor(0.5f, 0.5f, 0.5f, 0.5f);
batch.draw(Assets.instance.bunny.head, x + i * 50, y, 50, 50, 120, 100, 0.35f, -0.35f, 0);
batch.setColor(1, 1, 1, 1);
}

应该清楚为什么它现在“神奇地工作”了,它只是无条件地绘制。

关于java - for 循环中嵌套 if 语句 [JAVA/LibGDX],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44102120/

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