我想弄清楚如何爲我的遊戲設置一種通用遊戲元素類。我想嘗試,創造類似於太..AS3遊戲元素結構
GameElementPositionMovement(根類)的結構 - > GameElementVisual(處理所有的圖形) - > GameElementPersonality(處理遊戲邏輯)
我當時想只需創建一個GameElementPersonality的實例即可建立不同的人物(怪物,英雄,圖標等),但在其構造函數中也可以設置視覺和定位/移動方面。
我在另外一個問題提到了這一點,這回來就是答案......
看來你需要一種「數據模型」類來存儲邏輯和 視覺(「視圖」 )類。 Visual類不應該繼承數據模型,它應該使用它。這是OOP相關的問題:爲VS HAS(繼承 VS組成)
但我不知道如果我理解這一點。沒有任何視覺數據的位置/移動似乎是一個很好的第一根類,然後你添加視覺方面(GameElementVisual),然後最後添加個性「特徵」(GameElementPersonality),如護甲,傷害,健康等因此,我保持着定位/運動,視覺和邏輯的分離,並且我推測,我已經制定出的這種流感是最好的方法,但這不是一個好的方法來做到這一點?它應該更平坦嗎?與GameElementPositionMovement,創建一個視覺和邏輯實例,並存儲它本身?
與例子,都非常好,我喜歡比我自己的答案:)更好。也完全同意其他選項可用,但這是一個很好的開始,它不是隻選擇一種情況。我搜索谷歌和維基百科的設計模式是好的,但我更喜歡圖表,他們似乎缺乏,圖像搜索工作得很好http://tinyurl.com/d4l7qkj < - MVC http://tinyurl.com/bqtbs23 < - 軟件設計模式。顯然寫得很好。另外,同意思考當你使用模式時,如果事情穩定後,你需要優化思考。 – shaunhusain
感謝所有的答案。我會研究所說的內容,儘管我從來沒有真正使用過一個類的監聽器來與另一個類進行通信,但似乎不需要額外的工作,當你可以調用一個實例到另一個實例的方法時,我想知道你是否有很多如果這會減緩遊戲速度,這些情況會持續下去。 話雖如此,我目前還在學習obj-c,所以我試圖以我可以在obj-c中設置相同結構的方式設置AS3代碼。 – Phil
事件調度程序模式非常有用。在上面的例子中,它允許數據模型與其可視表示完全分離。數據類不需要知道有一個可視化表示,它只是在事件發生時分派事件。如果模式被正確應用,那麼與直接進行通信的類相比,代碼是**少**複雜。 – strah