2013-04-12 71 views
0

警告: Xna Noobie在這裏。地圖的每個區域是否都有自己的班級?

我正在製作一個2D,自上而下的RPG,有點像口袋妖怪。在我的遊戲中,我和主要的遊戲類一起爲玩家提供一個類,爲地圖提供一個類。我是否應該爲地圖的每個區域(例如,Town.cs,Forest.cs,River.cs)分別設置不同的類,如果需要,它們是否應該從父類繼承?或者我應該只有一個通用的MapRegion類,並且地圖的每個區域都只是MapRegion的一個實例?

+0

「依靠」。通常情況下,您需要在一個位置(BaseClass)中的所有常用數據和功能以及特殊位置(ChildClasses)中的特殊數據和功能。所以如果一個城鎮*的行爲與森林或河流不同,那麼就有不同的孩子。只要你記得把所有常見的東西放在基類中,只要有很多孩子類就可以了。如果您想要將代碼從一個子類複製並粘貼到另一個子類:請勿!把它放在基類中。而且,每當你*使用map變量工作時,都會使用基類來填充它們,並使用適合的子類來填充它們。 – Corak

+0

我想你最好有一個'MapRegion'類,它可以讀取某種配置來創建所有的「東西」。如果整個區域的行爲不同,請使用MapRegion的子類,否則我會創建一個簡單的MapRegion組成的MapRegion。每個瓷磚可以指定自己的行爲和事件,以便地圖可以保持簡單... – Crisfole

+0

愛的警告:) – Cyral

回答

1

這個決定取決於不同區域是否需要不同的功能。如果唯一的區別是地形/障礙物/建築物/等等,那麼使用通用的MapRegion類會更有意義,並且每個MapRegion都會加載存儲在外部數據文件中的不同地圖。但是,如果區域在代碼中的處理方式差異很大(這對於神奇寶貝風格的遊戲來說可能不太可能),則會創建不同的子類。它基本上取決於它們在功能上是不同的還是僅僅保存不同的數據。

+0

即使這樣,只有幾個不同的功能,你可以做一個'MapRegion',需要一對夫婦'行動'變量 - 不需要繼承。 – 2013-04-13 06:13:01

0

我覺得每個關卡都有不同的分類,但是你可以有一些特殊的關卡需要不同的關卡。在大多數情況下,我會創建一個基類,如果我需要一個特殊的地圖,我會創建一個子類。

基本地圖類需要有一些比較通用的成員:

  1. 目錄結構
  2. 列表NPCS
  3. 背景紋理

等等....

+0

這是我想知道的另一件事。我剛剛做了一個模擬,所以我可以在開始製作實際遊戲之前測試一些基本的東西,所以我只是使用[this](http://www.spriters-resource.com/gameboy_advance/mother3 /alecshouseoutside.png)來自Mother 3的圖像作爲我的地圖。我是否應該將每個單獨的對象(例如房子,仙人掌,山脈)作爲一個「結構」,而不是隻有一個圖像? – jae

+0

這些結構是否具有不同的屬性,例如'bool Passable'?通常這些類型的遊戲都與瓦片一起工作。現在是否有*一個* tile類或幾個子tile類......「依賴」。 ^^; – Corak

+0

這使我們進入碰撞檢測,這完全是一個完全的其他問題... – jae

相關問題