gpt4 book ai didi

Java for 循环 - (i * 16) 对 i 的所有值求值为 0

转载 作者:行者123 更新时间:2023-12-02 07:27:44 25 4
gpt4 key购买 nike

可能缺少一些基本的东西,但我的程序中有一个 for 循环,它应该迭代数组( lines[] )并将它们绘制在屏幕上(使用 LWJGL/Slick)。
这些行不是显示在单独的行上(在 (i*16 + 7, 5) ),而是全部显示在 (7, 5) 处。 .

for(int i = 0; i < lines.length; i++) {
if(lines[i] != null) {
f.drawString((i * 16) + 7, 5, lines[i]);
}
}

我已经看到其他问题的答案,建议在循环中定义最终变量,以避免在被调用函数使用它之前更改值。所以我将代码更改为:

for(int i = 0; i < lines.length; i++) {
if(lines[i] != null) {
final int i2 = i;
f.drawString((i2 * 16) + 7, 5, lines[i]);
}
}

但它并没有修复它(我并没有真正期望它会修复它,因为我没有陷入 i 的最后一个值,并且 Slick 不应该存储 i 的值,但尝试它以确保)。

<小时/>

drawString的头部如下:

public void drawString(float x, float y, String whatchars)

最佳答案

我想我的评论提供了答案,因此我将发布此帖子以供其他人提供帮助。

正确的调用是将偏移量放入函数的y参数中:

f.drawString(7, (i * 16)+5, lines[i]);

函数定义为:

public void drawString(float x, float y, String whatchars)

关于Java for 循环 - (i * 16) 对 i 的所有值求值为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13314183/

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