私の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を使用しているので、のような過剰な関数を使用することはできませんglutPassiveMotionFunc()
。誰かが助けを提供できますか?基本的に要約すると、私のカメラは非常にぎくしゃくしていて、ランダムなパターンでカメラを非常に速く回転させます。