可滚动和无尽的地图 - libgdx

时间:2014-09-22 03:31:31

标签: map libgdx repeat

我想创建一个带有太空飞船的简单游戏,需要在途中躲避小行星和东西。

现在,我可以想到几种在地图中产生障碍的方法。我唯一的问题是,我如何实现无尽的地图/可滚动地图的想法?

例如,在Flappy Bird中有一张无尽的地图。

我只是想知道实现这种事情的最佳方法是什么。

2 个答案:

答案 0 :(得分:1)

就像Alon所说,对于背景,你可以使用几个水平的" tileable"纹理,当它的边缘几乎可见时,只需将它们加载到当前纹理之后。你实际上可以创建多个图层来创建深度,例如你可以创建一个前景层,其中有一些云/星云,玩家在后面行进,然后玩家后面的一些太空尘埃行进得更慢,一些行星在远处行进得非常慢

只需为每个可平铺的背景纹理层创建一个数组。使这些纹理比实际屏幕更宽(或更多)。继续在右侧添加纹理,从数组中随机选取它们,然后让它们滚动。当然,当它们遍历屏幕并且不再显示时,你会删除纹理。

对于你的物体,你只是在屏幕上产生小行星并让它们穿过屏幕。您维护一个小行星列表,每次需要一个小行星时,您可以使用随机Y轴生成它并将其添加到列表中。当你需要绘制或计算碰撞时,你会遍历这个列表并在每个小行星上做你的东西。

答案 1 :(得分:0)

有很多方法可以做到这一点。我推荐这个:

将角色移动到所需的方向,并在全球位置重新塑造障碍。相机应该跟随角色。对于移动背景,您有两个选项:ParallaxBackground已经知道如何移动背景,或者您可以创建两个背景,当角色将在第一个结束时,您将第二个背景移动到最后。