Lwjgl慢坐标增量

问题描述 投票:-1回答:1

我在Pong中用lwjgl重新创建了Java,并注意到在慢速PC中球快速移动,而在快速PC中它移动得慢得多。

它到底是什么原因?我怎么解决这个问题?

附:我在每台电脑上运行的代码都是一样的。

java lwjgl frame-rate
1个回答
0
投票

谢谢您的帮助!

我写了一个解决方案。因此,如果你从lwjgl的游戏循环内部调用移动球的方法,很明显它会移动每一帧。 (code 1)

但是如果你在游戏循环之前调用一个线程并在循环中渲染它,它就可以正常工作。 (code 2)

代码1:

while(!glfwWindowShouldClose()) {
    glfwPollEvents();
    glClear(GL_COLOR_BUFFER_BIT);

    ball.move();
    render();

    glfwSwapBuffers(window);
}

代码2:

new Thread(new Runnable() {
    @Override
    public void run() {
        while(!glfwWindowShouldClose()) {
            ball.move();
            try {
                Thread.sleep(1000/fps);
            } catch(Exception e) {}
        }
    }
}).start();

while(!glfwWindowShouldClose()) {
    glfwPollEvents();
    glClear(GL_COLOR_BUFFER_BIT);

    render();

    glfwSwapBuffers(window);
}

确保你没有调用线程中的任何其他方法,否则它会崩溃。

© www.soinside.com 2019 - 2024. All rights reserved.