การกำหนดเวลาแบบกึ่งถาวรหรือแบบคงที่ครบหรือไม่
ฉันกำลังทำ iphone shmup และพยายามตัดสินใจว่าจะใช้ loop ของเกมประเภทใด ฉันต้องการใช้การประทับเวลาแบบกึ่งถาวรหรือการประทับเวลาแบบคงที่ทั้งหมด ด้วยการประทับเวลากึ่งถาวรฉันจะทำการโทรเป็นศูนย์หรือมากกว่า (FIXED_INTERVAL) การโทรตามด้วยการอัพเดทหนึ่งครั้ง (dt) การโทรโดยที่ dt <= FIXED_INTERVAL ต่อการวนรอบเกม ตามที่ฉันเข้าใจข้อเสียของวิธีนี้ก็คือตรรกะการอัปเดตทางฟิสิกส์ของฉัน (dt) จะเป็นเรื่องยากมากขึ้นในการเขียนโปรแกรมเพราะโดยทั่วไปฉันต้องสมมติตัวแปร dt สำหรับการอัพเดททุกครั้ง และจากนั้นฉันก็ได้ยินว่าการวิ่งในเกมของฉันแต่ละครั้งจะแตกต่างกันเล็กน้อยเนื่องจากค่าจุดลอยตัวไม่เหมือนกันทุกครั้ง จากนั้นด้วยการประทับเวลาที่แก้ไขอย่างสมบูรณ์ฉันกำลังโทรหาการปรับปรุงอย่างน้อยหนึ่งครั้ง (FIXED_INTERVAL) ตามด้วยการแก้ไขหนึ่งครั้ง (dt / FIXED_INTERVAL) โดยที่ dt <FIXED_INTERVAL ต่อการวนรอบเกม ดังนั้นดูเหมือนว่าการตัดสินใจครั้งใหญ่ที่ฉันต้องทำคือ: ฉันต้องการจัดการกับความท้าทายในการใช้การอัปเดต (dt) กับตัวแปร dt หรือฉันต้องการจัดการกับความท้าทายในการนำการแก้ไขมาใช้หรือไม่ ตอนนี้จากสิ่งที่ฉันได้อ่านผู้คนส่วนใหญ่บอกว่าใช้การแก้ไขอย่างเต็มที่และทำการแก้ไข แต่เมื่อฉันคิดเกี่ยวกับการใช้การแก้ไขดูเหมือนว่าฉันจะซับซ้อนกว่าการอัพเดต (dt) ด้วยตัวแปร dt นี่เป็นเพราะถ้าฉันใช้การแก้ไขฉันต้องจำทั้งสถานะก่อนหน้าและสถานะปัจจุบัน ดังนั้นถ้าฉันต้องการใช้การแก้ไขฉันต้องหาเลเยอร์ทางอ้อมเพิ่มเติมที่เป็นนามธรรมออกมาจากแต่ละเกม ในขณะที่มีการประทับเวลากึ่งถาวรที่ฉันไม่ต้องใช้การแก้ไขฉันไม่จำเป็นต้องมีสถานะเกมที่เป็นนามธรรมเพราะมีเพียงหนึ่งสถานะเกมเสมอและเป็นเพียง "อาร์เรย์ทั่วโลก" ที่เป็นตัวแทนศัตรูของฉันและศัตรู กระสุน ฯลฯ …