gpt4 book ai didi

java - OpenGL 鼠标输入

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

我的 OpenGL 程序中有这个鼠标功能:

public void mouseInput(){
int mouseX = Mouse.getX();
int mouseY = 600 - Mouse.getY();
int mouseDX = 0, mouseDY = 0;
int lastX = 0, lastY = 0;

mouseDX = mouseX - lastX;
mouseDY = mouseY - lastY;

lastX = mouseX;
lastY = mouseY;

xrot += (float) mouseDX;
yrot += (float) mouseDY;

}

我使用以下代码旋转“相机”:

glRotatef(xrot, 1.0f, 0.0f, 0.0f);
glRotatef(yrot, 0.f, 1.0f, 0.0f);

我在 !DisplayIsClosedRequested 循环中调用 mouseInput() 函数。目前,这导致我的游戏崩溃,即使我没有触摸鼠标,我的相机也会到处旋转。我渲染出来的立方体也会在屏幕上随机移动。我正在使用 LWJGL,因此我无法使用任何 glut 函数,例如 glutPassiveMotionFunc()。有人可以提供帮助吗?总的来说,我的相机非常不稳定,并且以随机模式快速旋转相机。

最佳答案

如果即使您没有触摸鼠标,相机也在旋转,则您可能会一遍又一遍地应用旋转。您可以首先在每一帧重置相机 View 矩阵(OpenGL 2 固定功能中的 glLoadIdentity()),然后应用旋转。这样,您将仅从每帧的固定引用点旋转,而不是最后一个引用点,这是从前一帧旋转的结果。

关于java - OpenGL 鼠标输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14167088/

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