2011-09-17 35 views
3

我使用的是複合材料的設計在我目前的遊戲,效果很好。所有的遊戲對象是遊戲對象的實例或是它的直接後裔......一些對象實現一個特定的接口,如武器,讓他們可以「拿來主義」被其他物體或簡單地時,他們需要額外的共享數據/方法。不過,我現在正在開始將box2d整合到遊戲中,但在這種情況下,我遇到了組合問題。例如,精靈在精靈渲染組件和對象屬性(如材質)中呈現,在渲染過程中得到應用,但在諸如拋射物的情況下,我發現我需要實質上編碼兩次相同的東西:基礎射彈有'onFire','onExpire'等方法,因爲武器總是擁有射彈,因此直接調用這些方法。但是,試圖將這些數據與彈丸物理組件同步,看起來像是在浪費時間。我認爲,在這種情況下,我應該有可能使彈丸自己「擁有」物理體,其中作爲彈丸物理組件,將處理onCollision事件,以及更新的位置..這將只是似乎清潔劑給我。現在我當然意識到,在這樣做的時候,我明確地將彈丸對象與box2d耦合起來,但是爲了我的需要,這樣可以。組成及子彈

我真的想在此方面的投入,因爲截至目前,我只是有很多的努力使其他對象使用相同的複合材料設計問題,適合我的需要與彈丸。請注意,我並不擔心是一個複合最純粹的,我的目標是創建一個遊戲,而不是源引擎的二維等價物;)

回答

0

例如,一個精靈在精靈渲染組件中呈現並且物體屬性(如材質)在渲染過程中得到應用,但在諸如投射物的情況下,

對於2d來說這是非常不明智的。在3D材質中會影響反射和光照,但在2D中,這種情況很少見。

我認爲在這種情況下,我應該有可能使彈丸自己「擁有」物理體

是的,任何模擬對象應該有一個機構附帶任何夾具。使用isBullte =真正的標誌爲您的投射物。 如果你的遊戲邏輯需要調用你的彈丸一些方法,只是一味地引用列表,但你並不需要爲組成。

+0

我最終使彈丸自己的身體,你said..but我用組成原因,主要是讓所有的對象可以通過相同的管道,而無需做類型轉換處處傳遞......這也是爲什麼我使用子系統,以便對象的組件可以通過專門處理每種類型的系統進行註冊和更新。 – Xealgo