ฉันใช้สูตรพื้นฐานมากในการคำนวณมุมของเทพดา (ยานอวกาศ) ที่ควรจะหันหน้าไปทางบนพื้นฐานของ thumbstick Xbox คอนโทรลเลอร์เช่นคุณใช้ thumbstick เพื่อหมุนเรือ
ในวิธีการอัพเดทหลักของฉัน:
shuttleAngle = (float) Math.Atan2(newGamePadState.ThumbSticks.Right.X, newGamePadState.ThumbSticks.Right.Y);
ในวิธีการวาดหลักของฉัน:
spriteBatch.Draw(shuttle, shuttleCoords, sourceRectangle, Color.White, shuttleAngle, origin, 1.0f, SpriteEffects.None, 1);
อย่างที่คุณเห็นมันค่อนข้างเรียบง่ายฉันเอาเรเดียนปัจจุบันจากนิ้วหัวแม่มือและเก็บมันไว้ในทุ่นshuttleAngle
แล้วใช้นี่เป็นอาร์กิวเมนต์มุมการหมุน (เป็นเรเดียน) สำหรับวาดรูปกระสวย
ด้วยเหตุผลบางอย่างเมื่อฉันหมุน sprint มันให้ความรู้สึกเหนียวที่มุม 0, 90, 180 และ 270 องศา มันต้องการที่จะตั้งถิ่นฐานที่มุมเหล่านั้น มันไม่ให้การหมุนที่ราบรื่นและเป็นธรรมชาติเหมือนกับที่ฉันรู้สึกในเกมที่ใช้กลไกที่คล้ายคลึงกัน PS: ตัวควบคุม Xbox ของฉันไม่เป็นไร!
shuttleAngle
เพื่อดูว่ามันติดอยู่ที่มุมเหล่านั้นหรือไม่