2
ในเกมแพลตฟอร์ม 2 มิติจะทำให้แน่ใจได้อย่างไรว่าผู้เล่นเคลื่อนที่อย่างราบรื่นบนพื้นที่ลาดเอียง?
ฉันกำลังพัฒนาเอ็นจิ้นฟิสิกส์สำหรับเกมแพลตฟอร์ม 2D ฉันใช้ทฤษฎีแกนแยกสำหรับการตรวจจับการชน พื้นผิวดินถูกสร้างขึ้นจากกล่อง bounded oriented โดยผู้เล่นเป็นกล่อง bounding bounded แกน (โดยเฉพาะฉันใช้อัลกอริทึมจากหนังสือ "การตรวจจับการชนกันแบบเรียลไทม์" ซึ่งทำการตรวจจับการชนกันของ OBB โดยใช้ SAT) ฉันใช้สัมประสิทธิ์การคืนค่าที่ค่อนข้างเล็ก (ใกล้กับศูนย์) ในการตอบสนองการชนเพื่อให้แน่ใจว่าวัตถุแบบไดนามิกไม่ได้เจาะสภาพแวดล้อม เครื่องยนต์ส่วนใหญ่ใช้งานได้ดีฉันแค่กังวลเกี่ยวกับเคสขอบบางอย่างที่อาจเกิดขึ้นได้ ตัวอย่างเช่นในแผนภาพ A, B และ C เป็นพื้นผิวดิน ผู้เล่นมุ่งหน้าไปทางซ้ายตามแนว B ไปทาง A ดูเหมือนว่าสำหรับฉันเนื่องจากความไม่ถูกต้องกล่องผู้เล่นอาจอยู่ด้านล่างกล่อง B เล็กน้อยเมื่อมันดำเนินต่อไปเรื่อย ๆ เมื่อถึง A ดังนั้นมุมซ้ายล่างของผู้เล่นอาจชนกับด้านขวาของ A ซึ่งจะไม่เป็นที่พึงปรารถนา (เนื่องจากความตั้งใจคือให้ผู้เล่นเคลื่อนที่อย่างราบรื่นไปด้านบนของ A) ดูเหมือนว่าปัญหาที่คล้ายกันอาจเกิดขึ้นเมื่อผู้เล่นอยู่ด้านบนของกล่อง C เคลื่อนไปทางซ้ายไปยัง B - จุดที่รุนแรงที่สุดของ B สามารถชนกับด้านซ้ายของผู้เล่นแทนที่จะเป็นมุมล่างซ้ายของผู้เล่นเลื่อนขึ้นและซ้าย เหนือ …