XNAでフライトシミュレーターゲームを作っています。また、マップ内を移動する飛行船 (飛行船) もいくつかあります。問題は、飛行船がマップの端に到達したときに適切に向きを変えることができないことです。位置、回転変数、速度を含む Blimp クラスがあります。これは基本的なロジックで、エッジに近づいたときに回転を開始することを示していますが、特定の量 (180 度としましょう) を回転させた後に回転を停止させる方法がわかりません。
private void blimpLogic(GameTime gameTime)
{
float turningSpeed = (float)gameTime.ElapsedGameTime.TotalMilliseconds / 1000.0f;
float turning = 0;
foreach (Blimp b in blimps)
{
if (b.Pos.X <= terrain.EdgeX.X + 100)
{
turning += turningSpeed * b.Speed;
b.Rotation += turningSpeed;
}
if (b.Pos.X >= terrain.EdgeX.Y - 100)
{
turning += turningSpeed * b.Speed;
b.Rotation += turningSpeed;
}
if (b.Pos.Z <= terrain.EdgeZ.X + 100)
{
turning += turningSpeed * b.Speed;
b.Rotation += turningSpeed;
}
if (b.Pos.Z >= terrain.EdgeZ.Y - 100)
{
turning += turningSpeed * b.Speed;
b.Rotation += turningSpeed;
}
}
}
事前に感謝し、何か不明な点があるかどうか尋ねてください。