คำถามติดแท็ก events

เหตุการณ์คือการกระทำที่มักเกิดขึ้น "ภายนอก" ของเธรดโปรแกรมหลัก แต่จัดการอยู่ภายใน

3
มีวิธีที่ดีกว่าในการตั้งค่าระบบเหตุการณ์หรือไม่?
ระบบการจัดกิจกรรมนั้นน่าทึ่งมากพวกเขาสร้างรหัสที่เชื่องมากและอนุญาตให้สร้างเกมแบบไดนามิกผ่านการสื่อสารที่ง่ายของวัตถุและวนรอบเกม ฉันมีช่วงเวลาที่ยากลำบากกับประสิทธิภาพของการใช้งานปัจจุบันของฉัน ปัจจุบันการเพิ่มประสิทธิภาพเล็กน้อยของฉันในการแยกรายการของวัตถุเป็นเหตุการณ์ที่พวกเขาตอบสนองได้ทำสิ่งมหัศจรรย์ แต่ควรมีมากกว่าที่ฉันสามารถทำได้ ขณะนี้ฉันมีสองวิธี: ง่ายที่สุด:วัตถุทั้งหมดจะถูกเพิ่มลงในเวกเตอร์เมื่อมีการส่งเหตุการณ์วัตถุทั้งหมดจะถูกส่งเหตุการณ์ผ่านมันเป็นวิธี handle_event () มีความซับซ้อนมากขึ้น:ฉันมีแผนที่พร้อมสตริงที่สำคัญและมีค่า เมื่อมีการเพิ่มประเภทเหตุการณ์มันจะถูกเพิ่มลงในแผนที่นี้โดยมีการเพิ่มค่า int (ต้องมีวิธีที่ดีกว่า) เวกเตอร์ของวัตถุเวกเตอร์จากนั้นจึงผลักเวกเตอร์ใหม่เพื่อจัดการเหตุการณ์ประเภทนั้น เมื่อมีเหตุการณ์ที่เรียกว่ามันก็เรียก int ที่สอดคล้องกันในแผนที่ eventTypes ประเภทที่อยู่ในเวกเตอร์ของวัตถุเวกเตอร์และส่งเหตุการณ์นั้นไปยังแต่ละวัตถุการจัดการประเภทเหตุการณ์ที่ วิธีแรกเหล่านี้ค่อนข้างช้า (ชัด) สำหรับวัตถุจำนวนมาก แต่ค่อนข้างเร็วสำหรับวัตถุน้อยมาก ในขณะที่วิธีที่สองค่อนข้างรวดเร็วด้วยวัตถุขนาดใหญ่ที่ต้องการจัดการเหตุการณ์ประเภทต่าง ๆ แต่ช้ากว่าวิธีแรกต่อวัตถุที่มีวัตถุที่จัดการกับเหตุการณ์ประเภทเดียวกัน มีวิธีที่เร็วกว่า (ใช้เวลาฉลาด) หรือไม่? มีวิธีที่เร็วกว่าในการค้นหา int จากชนิดสตริงหรือไม่ (เริ่มแรกฉันมี enum แต่มันไม่อนุญาตให้ใช้ประเภทแบบกำหนดเองซึ่งมีความจำเป็นเนื่องจากระดับพลวัตที่ต้องการ)

2
การพัฒนากับเหตุการณ์มีบทบาทอย่างไรในเกม?
การพัฒนาแอพพลิเคชั่นส่วนใหญ่มีพื้นฐานมาจากการพัฒนาด้วยอีเวนต์ แต่เมื่อพิจารณาจากรูปแบบการวนลูปของเกมที่กำลังพัฒนาและความต้องการ (บ่อยครั้ง) สำหรับประสิทธิภาพสูง / ปริมาณงานการพัฒนาโดยใช้เหตุการณ์มีบทบาทอย่างไร การซิงโครไนซ์ / ล็อคที่มักเกี่ยวข้องมีผลกระทบมากขึ้นหรือไม่ ตัวอย่างเช่น: - เครือข่าย [เลเยอร์] แจ้งวงวนของข้อมูลที่ได้รับอย่างไร - ระบบฟิสิกส์แจ้งการชนอย่างไร ฉันถามเพราะฉันจำได้ว่าช่วงเวลาหนึ่งที่การพัฒนาเกมโดยใช้กิจกรรมเป็นเรื่องที่ไม่เด็ดขาด สิ่งนี้มีการเปลี่ยนแปลงหรือไม่?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.