2010-11-28 83 views
1

我想弄清楚在2D側滾動遊戲中存儲地圖對象的最佳方式。如何存儲2D邊滾動遊戲的屏幕對象?

例如,在遊戲Doodle Jump中,您跳到的平臺如何存儲?

我已經有大約它是如何做可能的一些想法..

存儲在一個字符串或其他對象定義了每個平臺將被放置在平臺?例如,如果我定義了像0,10,5,8,6,2,3,4,2,......等字符串,我可以將它們解釋爲遊戲中每個遊戲塊的x座標。我猜這個問題可能是很多遊戲作品定義的問題。遊戲似乎是無止境的,所以預先定義地圖似乎是一個壞主意。

我還認爲,也許這些作品只是隨機的。所以無論何時地圖需要新的地圖塊,它都會隨機獲得一個x座標。我認爲這看起來非常可行,但是在玩DoodleJump時,它並不表示它們都是隨機的。

有沒有人有任何想法如何可以存儲這些地圖對象來引導我在正確的方向?

謝謝!

回答

1

我正在考慮一組增量高度座標及其各自的寬度座標(1d或2d數組)。增量是因爲不讓座標變大。
您可以使用屏幕尺寸來知道要計算屏幕座標的平臺。當跳躍物體達到一定的屏幕高度閾值時,移動相機,計算新的屏幕座標,省略掉屏幕的平臺並添加進入視野的平臺。

您可以事先使用帶有最小/最大限制座標距離的隨機性算法來生成數組。使用整數時,我可以在陷入困境之前生成一個相當大的數組。
或者使用相同的種子隨機函數,所以它會產生相同的陣列每一次,你可以保持持續下去

0

你可以使用一個隨機數發生器,每級固定的種子生成它的實時所以用戶每次獲得相同的級別。隨機數可以從適當值的數組中進行選擇。 (我已經在安卓遊戲中成功地使用了它。)

0

許多平臺遊戲存儲靜態地圖平臺(即無法操縱/銷燬的地圖部分 - 馬里奧兄弟的地磚。 ,例如)作爲預定義的地圖。這可以通過使用數組值或alphamap圖像來完成。

如果使用數組方法,請使用字節(unsigned char's)而不是int's。