-1

モブが特定の速度で移動する目的地を与えられるタワー ディフェンス ゲームを作ろうとしていますが、現在の設定方法では、 updateAngle() メソッドで奇妙なことが起こっています。 .

    // Destination is represented by Coordinates[index]

    public void Update(GameTime time)
    {
        Position.Y -= (float)(time.ElapsedGameTime.TotalSeconds * velocity * Math.Cos(angle));
        Position.X += (float)(time.ElapsedGameTime.TotalSeconds * velocity * Math.Sin(angle));

        float remainingX = Math.Abs(Destination.X - Position.Y);
        float remainingY = Math.Abs(Destination.Y - Position.Y);

        if (remainingX < 2 && remainingY < 2)
        {
            index++;

            if (index == Coordinates.Count - 1)
            {
                End = true;
            }
            else
            {
                updateAngle();
            }
        }

    }

    private void updateAngle()
    {
        angle = (float)Math.Atan((Position.Y - Destination.Y) / (Position.X - Destination.X));
    }
4

1 に答える 1