ฉันเดาฉันตัดสินใจว่าฉันชอบตัวจัดการเหตุการณ์ ฉันอาจกำลังทุกข์ทรมานเล็กน้อยจากการวิเคราะห์อัมพาต แต่ฉันกังวลเกี่ยวกับการทำให้การออกแบบของฉันยุ่งเหยิงหรือวิ่งไปสู่ผลลัพธ์ที่ไม่คาดฝันอื่น ๆ ต่อการตัดสินใจออกแบบของฉัน
เอ็นจิ้นเกมของฉันทำการเรนเดอร์พื้นฐานโดยใช้กล้องส่ายกล้อง การออกแบบของฉันมีลักษณะเช่นนี้:
SceneHandler
มีรายการคลาสที่ใช้อินเตอร์เฟส SceneListener (ปัจจุบันเป็น Sprites เท่านั้น) โทร render () หนึ่งครั้งต่อหนึ่งขีดและส่ง onCameraUpdate (); ข้อความถึง SceneListeners
InputHandler
โพลอินพุตหนึ่งครั้งต่อหนึ่งขีดและส่งข้อความ "onKeyPressed" ธรรมดาไปยัง InputListeners ฉันมี Camera InputListener ซึ่งเก็บอินสแตนซ์ของ SceneHandler และทริกเกอร์ updateCamera (); เหตุการณ์ขึ้นอยู่กับสิ่งที่ป้อนเข้า
AgentHandler
เรียกการกระทำเริ่มต้นใน Agent (AI) หนึ่งครั้งต่อหนึ่งขีดและจะตรวจสอบสแต็กสำหรับเหตุการณ์ใหม่ใด ๆ ที่ลงทะเบียนโดยส่งไปยังตัวแทนที่เฉพาะเจาะจงตามความจำเป็น
ดังนั้นฉันจึงมีวัตถุสไปรต์ขั้นพื้นฐานที่สามารถเคลื่อนที่ไปรอบ ๆ ฉากและใช้พฤติกรรมการขับขี่แบบพื้นฐานเพื่อเดินทาง ฉันได้รับการตรวจจับการชนกันและนี่คือที่ฉันไม่แน่ใจว่าทิศทางการออกแบบของฉันเป็นไปได้ดี เป็นการดีหรือไม่ที่จะมีตัวจัดการเหตุการณ์ขนาดเล็กจำนวนมาก? ฉันคิดว่าจะเป็นอย่างที่ฉันจะต้องใช้ CollisionHandler บางประเภท
ฉันจะดีกว่านี้ด้วย EntityHandler ที่รวมมากขึ้นซึ่งจัดการ AI อัพเดตการชนกันและการโต้ตอบเอนทิตีอื่น ๆ ในชั้นเดียวหรือไม่ หรือฉันจะต้องใช้ระบบย่อยการจัดการเหตุการณ์ที่แตกต่างกันหลายอย่างซึ่งส่งข้อความถึงกันโดยขึ้นอยู่กับประเภทของเหตุการณ์ ฉันควรเขียน EntityHandler ซึ่งมีหน้าที่รับผิดชอบในการประสานงานตัวจัดการเหตุการณ์ย่อยเหล่านี้ทั้งหมดหรือไม่?
ฉันตระหนักในบางกรณีเช่น InputHandler และ SceneHandler ของฉันนั่นเป็นประเภทเหตุการณ์ที่เฉพาะเจาะจงมาก รหัสเกมส่วนใหญ่ของฉันจะไม่สนใจอินพุตและส่วนใหญ่จะไม่สนใจเกี่ยวกับการอัปเดตที่เกิดขึ้นอย่างแท้จริงในการแสดงผลของฉาก ดังนั้นฉันจึงรู้สึกว่าการแยกระบบเหล่านั้นออกมานั้นมีเหตุผล อย่างไรก็ตามฉันถามคำถามนี้โดยเฉพาะเหตุการณ์ประเภทเกมตรรกะ