0

Y回転が0より大きいか、0より小さいときに、カメラをX軸で回転させると、Z軸も回転します。
なぜこれを行うのですか?

if(Keyboard.isKeyDown(Keyboard.KEY_UP)){
    xRot-=speed_rotation;
    glRotatef(-speed_rotation, 1, 0, 0);
}
if(Keyboard.isKeyDown(Keyboard.KEY_DOWN)){
    xRot+=speed_rotation;
    glRotatef(speed_rotation, 1, 0, 0);
}
if(Keyboard.isKeyDown(Keyboard.KEY_LEFT)){
    yRot-=speed_rotation;
    glRotatef(-speed_rotation, 0, 1, 0);
}

if(Keyboard.isKeyDown(Keyboard.KEY_RIGHT)){
    yRot+=speed_rotation;
    glRotatef(speed_rotation, 0, 1, 0);
}

何が原因なのかはわかっていると思いますが、よくわかりません...

4

1 に答える 1

2

キーボード ハンドラーではなくglRotate()、現在行っているように x/y 回転値を更新し、描画する直前に単一セットを発行します。glRotate()s

于 2013-01-31T15:20:16.193 に答える