public void Update(Vector3 pointToFace) { float currentRotation = (float)Math.Atan2(this.Sprite.YVelocity, this.Sprite.XVelocity); decimal r = (decimal)TurnToFace(this.Sprite.Velocity, pointToFace, currentRotation, this.TurningSpeed); Vector3 v; v.X = Math.Cos(r) * this.Sprite.XVelocity - Math.Sin(r) * this.Sprite.YVelocity; v.Y = Math.Cos(r) * this.Sprite.YAcceleration + Math.Sin(r) * this.Sprite.XAcceleration; this.Sprite.Velocity = v; this.Sprite.RotationZ = (float)Math.Atan2(this.Sprite.YVelocity, this.Sprite.XVelocity); }