java - LWJGL 游戏循环不工作

标签 java opengl lwjgl

我正在尝试在 LWJGL 3 中制作一个简单的游戏,但我被困在原地,主游戏循环不起作用;

float fps = 60;
double ns = 1000000000 / fps;
long last = System.nanoTime();
double delta = 0;

while(glfwWindowShouldClose(window) != GL_TRUE){
    delta += (System.nanoTime() - last) / ns;
    System.out.println(delta);
    last = System.nanoTime();
    while(delta-- >= 1){
        update();
    }
    render();
}

我添加了打印来测试发生了什么,我注意到 delta 始终小于零,这是不应该发生的;

我正在使用 LWJGL 3 和 Java 1.8 SE

最佳答案

为什么你认为不可能得到负值?

这个表达式

while(delta-- >= 1)

无论是否进行循环,delta都会至少减少一次1。

关于java - LWJGL 游戏循环不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35902160/

相关文章:

java - 代号1 POST 请求主体

java - 纹理映射的奇怪问题

c++ - 2D OpenGL 场景因大量重叠形状而变慢

Java多线程,主线程为什么停止了?

java - OpenGL 非常大的网格裁剪

java - 如何使 Java 类中的方法返回 findViewById?

java - Swing : best way to implement zoom functionality in image component

java - 调用方法时将代码设置为属性

java - 将JOGL打包成fat JAR

OpenGL:从 GLSL 中的窗口空间坐标计算眼空间坐标?