2011-02-07 124 views
0

我想在面向對象的編程風格中製作RPG。我有oo編程經驗,但從未與大量的類和子類合作過。我從這個 http://members.gamedev.net/emmanuel_deloget/ 開始,創建類似於它的我自己的結構。問題是我不明白結構如何使用。你是否爲類似比賽的事物創建靜態類並使用它們,或者你是否從單個種族類創建了一個對象?這讓我感到困惑,因爲我會假設你創建了一個單獨的種族類,並且當'Main'類初始化時創建了所有的單個類,但是上面的圖表並沒有顯示任何用於初始化這些對象的方法,除了構造函數。但是因爲種族會有不同的成員變量值,我將如何使用上面的圖表來初始化一個種族對象?或者這個圖表不完整? (如果它不完整,那麼這就是我所認爲的混淆)如何使用RPG類層次結構?

+0

這個問題太廣泛了,無法回答。 – 2011-02-07 18:50:19

回答

3

強烈建議:不要使用繼承層次結構來表示RPG中的對象。

改爲使用組合而使用prototype-based programming對象來定義對象屬性和行爲。

簡單的原因是,無法在繼承式類層次結構中表示覆雜RPG的行爲。

舉一個例子,假設你在遊戲中有一個鐵魔像。它需要有:

  • 關於什麼是能夠造成破壞(即衝擊非常抗拒,非常耐火,很容易生鏽或酸)
  • 「鐵」材料的性能「大型人形」在戰鬥和行動方面的屬性(不能飛行,可以行走,可以被斬首,可以使用超大型武器和裝甲)
  • 魔法效果的「人造結構」的屬性(不容易受到恐懼,不是生活,神奇地動畫)
  • 「半智能怪物」的屬性與人工智能和行爲的相互關係(敵對玩家,在瞄準球員等)

所有這些類型的屬性理論上可以混合和匹配。所以你將永遠無法定義一個包含它們的簡單繼承heirarchy。甚至不要嘗試,只是讓你的鋼鐵魔像成爲相關屬性的組合。

我從實施RPG對象模型的經驗中發表意見 - 如果您有興趣,請查看Tyrant(我多年前寫的一個roguelike遊戲)的源代碼。我從一個繼承層次開始,但最終不得不將整個代碼重構爲基於原型的模型。