float Y = Math.Abs((float)(iSpeed * Math.Cos(v3Rotation.Z))); float X = Math.Abs((float)(iSpeed * Math.Sin(v3Rotation.Z))); float fAngle = Math.Abs((float)(v3Rotation.Z % (2 * Math.PI))); if(fAngle > Math.PI && fAngle < Math.PI*2) { X *= -1; } else if (fAngle > Math.PI && fAngle < Math.PI *2 *.75) { X *= -1; Y *= -1; } else if (fAngle > Math.PI * 2 * .75 && fAngle < Math.PI * 2) { Y *= -1; } v3Position.X += X; v3Position.Y += Y;