在班

2011-04-27 28 views
4

遊戲世界的結構,我發展在Java中的2D遊戲,我想一些基本的遊戲中的腳本(產卵敵人,產卵項目,改變敵人的屬性)。在班

我不知道什麼是如何劃分的遊戲世界,所以我可以輕鬆地使用它。

我需要敵人(衛生和基本AI)不同的類型,項目類(可以通過播放器採摘),瓦片地圖與不同的塊。

如何組織我的遊戲世界架構?以及我應該使用哪些基本類來輕鬆擴展和維護遊戲世界?

+8

這個問題更適合http://gamedev.stackexchange.com/ – karim79 2011-04-27 15:54:37

+1

細說更多關於你的遊戲。敵人襲擊嗎?一切都有益健康,還是隻有一次命中擊殺?你是否收集物品?談論更多關於一切如何運作的信息,設計課堂體系結構會更容易。 – 2011-04-27 15:55:31

+3

對人來說,它如何「很難說出這裏被問到的是什麼」? – zoul 2011-04-27 16:16:56

回答

3

對我來說,遊戲世界的基本要素是尋找共同點。

世界前進的時間。所以所有的主動元素(玩家,掉落的物品,敵人,npc的),但所有被動元素不是(石塊,樹木,房子),因此我會使用2個接口ActiveElement和PassiveElement。活動元素可以有一個stepintime()函數,遊戲世界每次都會按時間步調。兩個元素都可以有一個render()函數,該函數在遊戲世界繪製在畫布上時繪製元素。

那麼所有的敵人,應該叫他們的AI來確定時間的下一步以及檢查碰撞與任何其他對象,並知道是什麼意思(樹木子彈球員等等)也是一樣基本上是所有其他元素。

這是我在gameworlds最基本的架構。

然後有一個性能問題,它可能會更好地把某些東西放在他們自己的線程中並讓它們運行(每個週期檢查他的頭像的位置和狀態的敵方AI,並且使得每個週期都讀取它的輸入步驟及時),但我沒有足夠的經驗來闡述。那麼你應該去gamedev網站(例如karim79說)。

實現的元素可以有自己的屬性,然後和易於擴展(衛生,統計數據) 和寫入,讀取simpel一個腳本解釋器,與遊戲世界將敵人等

0

我通信通常有一個類似於this的佈局。

GameObject具有功能,如Draw()Move()。然後Enemy爲實現人工智能GoblinUnicorn設置了一些更多的功能和變量。 Player包含所有用於移動播放器Move()的內容。

這只是我會做的一般想法。它對於每種遊戲都有所不同,具體取決於它是什麼類型的遊戲以及如何玩它。