我正在 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;
}
}
}
在此先感谢并询问我是否对某些事情不清楚。