Lwjgl медленное приращение координат - PullRequest
0 голосов
/ 23 февраля 2019

Я воссоздал Pong с lwjgl в Java и заметил, что на медленном ПК мяч движется быстро, в то время как на быстром ПК он движется гораздо медленнее.

Зачем это нужно?к?Как я могу решить это?

PS Код, который я запускал на каждом компьютере, одинаков.

1 Ответ

0 голосов
/ 04 марта 2019

Спасибо за вашу помощь!

Я написал решение.Поэтому, если вы вызываете метод перемещения мяча из игрового цикла 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);
}

Убедитесь, что вы не вызываете никакие другие методы в потоке, иначе это 'прорвусь.

...