gpt4 book ai didi

java - while 循环中的条件

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

为什么这段代码有效(窗口在退出按钮上关闭)?

<小时/>

看起来我的帖子主要是代码,我不知道要添加哪些细节。看起来我的帖子主要是代码,我不知道要添加哪些细节。

public class Main
{
public static void main (String[] args)
{
start(); //Create a window
render(); //Run the game
close(); //End the game
}

private static void start()
{
Window SD = new Window();
SD.Launch();
}

private static void render()
{
while(!Display.isCloseRequested() && !Keyboard.isKeyDown(Keyboard.KEY_ESCAPE))
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)

Display.update();
}
}

private static void close()
{
Display.destroy();
}
}

但是这段代码没有:

//
while(!Display.isCloseRequested() && !Input.ESC)
//

public class Input
{
public static boolean ESC = Keyboard.isKeyDown(Keyboard.KEY_ESCAPE);
}

最佳答案

在第二个版本中,Keyboard.isKeyDown(Keyboard.KEY_ESCAPE) 被评估一次,并将其值分配给 ESC,该值保持不变。它要么总是正确,要么总是错误(更有可能)。

您的第一个版本会在循环的每次迭代中评估 !Keyboard.isKeyDown(Keyboard.KEY_ESCAPE),因此它可以检测何时实际按下 ESC。

如果将 ESC 更改为静态方法而不是静态变量,则表达式将在每次调用 ESC() 时进行计算,并且两个循环都将起作用。

while(!Display.isCloseRequested() && !Input.ESC())
//

public class Input
{
public static boolean ESC()
{
return Keyboard.isKeyDown(Keyboard.KEY_ESCAPE);
}
}

关于java - while 循环中的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27722179/

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