คำถามติดแท็ก game-component

5
ข้อเสียของการใช้ DrawableGameComponent สำหรับทุก ๆ ครั้งของวัตถุในเกมคืออะไร?
ผมเคยอ่านในหลายสถานที่ที่ DrawableGameComponents จะถูกบันทึกไว้สำหรับสิ่งที่ต้องการ "ระดับ" หรือชนิดของผู้จัดการแทนการใช้พวกเขาเช่นบางตัวอักษรหรือกระเบื้อง (เช่นเดียวกับผู้ชายคนนี้บอกว่าที่นี่ ) แต่ฉันไม่เข้าใจว่าทำไมถึงเป็นเช่นนั้น ฉันอ่านโพสต์นี้และมันทำให้รู้สึกถึงฉันมาก แต่สิ่งเหล่านี้เป็นส่วนน้อย ฉันมักจะไม่สนใจสิ่งต่าง ๆ เช่นนี้มากเกินไป แต่ในกรณีนี้ฉันอยากจะรู้ว่าทำไมคนส่วนใหญ่ที่เห็นได้ชัดเชื่อว่านี่ไม่ใช่วิธีที่จะไป บางทีฉันอาจจะหายไปบางสิ่งบางอย่าง

2
โดยทั่วไปส่วนประกอบของฟิสิกส์หรือกราฟิกนั้นสร้างขึ้นในระบบที่มุ่งเน้นส่วนประกอบได้อย่างไร
ฉันใช้เวลา 48 ชั่วโมงในการอ่านข้อมูลเกี่ยวกับระบบ Object Component และรู้สึกว่าฉันพร้อมที่จะเริ่มนำไปใช้งานแล้ว ฉันได้รับคลาส Object และ Component พื้นฐานแล้ว แต่ตอนนี้ฉันต้องเริ่มสร้างส่วนประกอบจริงฉันสับสนเล็กน้อย เมื่อฉันนึกถึงพวกเขาในแง่ของ HealthComponent หรืออะไรบางอย่างที่โดยพื้นฐานแล้วจะเป็นเพียงแค่คุณสมบัติมันก็สมเหตุสมผลดี เมื่อมันเป็นเรื่องทั่วไปมากขึ้นในส่วนของฟิสิกส์ / กราฟิกฉันสับสนเล็กน้อย คลาส Object ของฉันมีลักษณะเช่นนี้จนถึงตอนนี้ (หากคุณสังเกตเห็นการเปลี่ยนแปลงใด ๆ ที่ฉันควรทำโปรดแจ้งให้เราทราบยังใหม่ต่อเรื่องนี้) ... typedef unsigned int ID; class GameObject { public: GameObject(ID id, Ogre::String name = ""); ~GameObject(); ID &getID(); Ogre::String &getName(); virtual void update() = 0; // …

4
ฉันควรใช้เทคนิคใดเพื่ออำนวยความสะดวกในการสื่อสารระหว่าง XNA GameComponents (หรือระหว่างองค์ประกอบของเกมประเภทใดก็ได้)
ฉันเริ่มโครงการเกม 'ถูกต้อง' ครั้งแรกของฉันและฉันก็โดนบล็อกที่พยายามตัดสินใจว่าองค์ประกอบของเกมใน XNA ควรสื่อสารอย่างไร จากเหตุการณ์การเขียนโปรแกรม GUI (Java) GUI ก่อนหน้าตัวจัดการและผู้ฟังดูเหมือนจะเป็นทางไปข้างหน้า ดังนั้นฉันจึงมี Event Bus บางประเภทที่ยอมรับการลงทะเบียนกิจกรรมและคลาสที่สมัครเป็นสมาชิกของกิจกรรมเหล่านั้นพร้อมกับตัวจัดการเพื่อจัดการกับพวกเขา ตัวอย่างเช่น (pseudocode): class SpriteManager Update(){ if(player.collidesWith(enemy) // create new 'PlayerCollisionEvent' } class HUDManager onPlayerCollisionEvent(){ // Update the HUD (reduce lives etc) } อย่างไรก็ตามฉันไม่แน่ใจเกี่ยวกับการตั้งค่ารหัส (ใน C #) ที่จะต้องทำสิ่งนี้ให้สำเร็จ อะไรคือสิ่งที่คอยติดตามเหตุการณ์ (รถบัสบางประเภท) และมันมีโครงสร้างอย่างไร ดูเหมือนจะมีการกล่าวถึงมากมายเกี่ยวกับบริการเกมโดยที่คุณสามารถลงทะเบียน GameComponent ในคลาส Game.cs หลักของคุณจากนั้นดึงข้อมูลจากที่ใดก็ได้ในรหัสของคุณที่มีการอ้างอิงถึงวัตถุ 'เกม' …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.