using Microsoft.Xna.Framework; class HandleRotation { int rotationSpeed = 5, Rotation = 180; public Vector2 UpdatePosition(int Destination, float tractorSpeed, Vector2 Position) { Vector2 Direction; if (Destination == 0) { if (Rotation == 0) { Direction = new Vector2(0, 1) * tractorSpeed; Position = Position + Direction; } else { if (Rotation > 180) { if (Rotation >= 360) { Rotation = 0; } Rotation = Rotation + rotationSpeed; } else if (Rotation <= 180 && Rotation > 0) { Rotation = Rotation - rotationSpeed; } } } else if (Destination == 1) { if (Rotation == 180) { Direction = new Vector2(0, -1) * tractorSpeed; Position = Position + Direction; } else { if (Rotation >= 0 && Rotation < 180) { Rotation = Rotation + rotationSpeed; } else if (Rotation < 360 && Rotation > 180) { Rotation = Rotation - rotationSpeed; } } } else if (Destination == 2) { if (Rotation == 270) { Direction = new Vector2(1, 0) * tractorSpeed; Position = Position + Direction; } else { if (Rotation > 90 && Rotation < 270) { Rotation = Rotation + rotationSpeed; } else if (Rotation < 90 || Rotation < 360) { if (Rotation <= 0) { Rotation = 360; } Rotation = Rotation - rotationSpeed; } } } else if (Destination == 3) { if (Rotation == 90) { Direction = new Vector2(-1, 0) * tractorSpeed; Position = Position + Direction; } else { if (Rotation < 270 && Rotation > 90) { Rotation = Rotation - rotationSpeed; } else if (Rotation >= 0 || Rotation > 270) { if (Rotation >= 360) { Rotation = 0; } Rotation = Rotation + rotationSpeed; } } } return Position; } public int getRotation() { return Rotation; } }