2014-11-23 24 views
0

(只是要清楚,我要求guideance不是有人編程這整個事情(除非他們想XD))安卓塊地圖生成通過文本文件

嗨,我目前正在努力使一個android遊戲,你可以在這個遊戲中創建一個塊(有幾種類型,但我們只是在這裏使用牆)。

地圖將會是100x20塊,其中玩家可以以任何順序放入任何可用的塊,並且將以文本文件「讓我們稱之爲」mapFile「」(這部分我已經解決了),其中0將是沒有什麼,1將是牆壁。

現在問題是,當你開始玩地圖時,遊戲將不得不加載所有的障礙物來製造障礙物,但我希望它以特定的方式來做(主要是爲了讓遊戲變得更加平滑)並且每次更新時不必檢查2000個塊):

- 使塊(線,正方形,矩形)的塊組成爲1個障礙物,因此只有1個塊在大量塊中進行碰撞檢測(困難部分是以最佳方式劃分複雜形狀)

-將地圖分成5x5塊,因此它不必檢查每個障礙物以查看是否應該繪製它(它只會繪製塊中的球員在和那些sur舍入)

從這個輸出應該是一個4級陣列(或類似的東西): 數組[Ychunk] [Xchunk] [障礙物] [X,Y,大區塊,yBlocks,類型] (類型僅僅是在地圖中塊的NUM(在這種情況下,它是1,因爲它是在我的應用程序牆數)

對於現在的遊戲有:

- 一個陣列的所有障礙信息(X,Y ,xBlocks,yBlocks,類型)

- 只有在距離玩家很小的距離時纔會更新障礙物(仍然需要全部檢查)

- 只繪製屬於窗口內的障礙物(也必須檢查他們所有)

+0

2D平鋪遊戲? [平鋪遊戲](http://www.tonypa.pri.ee/tbw/links.html)。 – j4rey89 2014-11-23 07:58:06

+0

是的,很抱歉忘了那個 – mbsff 2014-11-23 13:37:43

回答

0
  • 首先,你不需要一個陣列,所有的地圖信息,你需要的是一個二維數組瓷磚。瓦片對象將包含像圖像,isSolid等所有信息。
  • 其次,您將永遠具有可見的播放器,以便作爲您的播放器的行爲,只有顯示播放器周圍的瓦片並將其呈現給屏幕。渲染不會在屏幕上呈現的瓦片是沒有意義的,例如,如果玩家位於中心並且屏幕呈現5x5瓦片,則玩家瓦片的+/- 2瓦片。同樣,檢查瓷磚是否可見不,需要檢查所有
  • 最後,您不需要檢查與所有障礙物的玩家碰撞,只需要檢查與玩家是將繼續前進。

希望它有幫助。

+0

感謝您的回答,但正如在「現在遊戲有」部分所述,有一個只有他們的信息的障礙物陣列,遊戲只更新和呈現對象內窗口,說要檢查它們的部分是爲了知道它們是否在裏面。 – mbsff 2014-11-24 02:16:41

+0

什麼是xblock,yblock和xchunk,ychunk?該類型,我假設它是瓷磚類型。 – j4rey89 2014-11-24 06:45:05

+0

xblock和yblock是構成障礙物的每個方向上的塊數,xchunk和ychunk是地圖上的塊(塊是5x5空間區域) – mbsff 2014-11-26 02:20:20