私は lwjgl を使用するプログラムを作成しようとしています。これには、FPS ゲームの観戦モードのような、一人称視点での飛行が含まれます。見ている方向に飛んでいきます。地面を歩くFPSカメラのやり方は知っていますが、これも上下するはずです。私は何かをしようとしましたが、それはひどく不正確です.
次のコードは、カメラ アングルを担当するクラスにあります (正の y が上)。
public void move(double mx, double my, double mz)
{
this.x += mx;
this.y += my;
this.z += mz;
}
public void moveForward()
{
rx = toDeg(rx);
float speed = 0.25f;
double xsin = Math.sin( Math.toRadians( rx ) );
double ysin = Math.sin( Math.toRadians(
( ry + Math.signum( toDeg( rx + 90.00001f ) - 180 ) * -90 )
));
double ycos = Math.cos(Math.toRadians(
( ry + Math.signum( toDeg( rx + 90.00001f ) - 180 ) * -90 )
));
this.move( speed * ycos, speed * xsin, speed * ysin );
}
ありがとう!