2014-09-22 63 views
0

我想用一艘太空飛船創造一個簡單的遊戲,需要避開沿途的小行星和東西。可滾動和無盡的地圖 - libgdx

現在,我可以想出幾種方法在地圖上產生障礙。我唯一的問題是,我如何實現無限地圖/可滾動地圖的想法?

例如,在Flappy Bird中有一幅無盡的地圖。

我只是想知道什麼是實施這種事情的最佳方法。

回答

0

有很多方法可以做到這一點。我推薦這一個:

移動你的角色在需要的方向,並重新在全球位置的障礙。相機應該跟隨角色。對於移動背景,您有兩個選擇:ParallaxBackground已知道如何移動背景,或者您可以創建兩個背景,並且當角色將在第一個背景結束時,您將第二個背景移動到最後。

+0

我不確定你的意思。您能否詳細介紹一下ParalllaxBackground和Camera的重點? – 2014-09-22 09:28:45

+0

ParalllaxBackground - 是可以用se速度移動背景的類。你可以閱讀更多關於它的描述(鏈接在答案中)。相機的焦點 - 您需要改變相機每一幀的位置,以使焦點集中在播放器上。小例子:camera.position.set(hero.position.x,hero.position.y,0); – 2014-09-22 10:17:50

1

像Alon說的那樣,對於背景,您可以使用多個水平「可貼圖」紋理,只需在當前邊緣幾乎可見時將其加載到當前紋理背後即可。實際上,您可以創建多個圖層來創建深度,例如,您可以創建一個前景圖層,其中有一些雲層/星雲位於後方,然後玩家背後的一些空間塵埃移動得更慢,一些行星在遠處行進得非常緩慢。

只需爲每個圖層背景紋理圖層創建一個數組。使這些紋理有點(或很多)比實際屏幕寬。繼續向右側添加紋理,從數組中隨機選取它們,並讓它們滾動。當然,當他們遍歷屏幕並且不再顯示時,你會刪除紋理。

對於你的對象,你只是在屏幕上產生小行星,讓它們穿過屏幕。你維護一個小行星列表,每次你需要一個小行星時,你可以用一個隨機的Y軸生成它並將它添加到列表中。當你需要繪製或計算碰撞時,你可以遍歷這個列表並在每個小行星上做你的東西。