我正在制作3D游戏,并在寻找将地板作为3D一部分的最佳方法。如果您想象那些像TempleRun这样的游戏,但是没有转弯,那么您将向前移动并且地板无限地向后滚动(朝着用户)。

我已经使我的3D对象适当地绕X轴移动(在固定的Z平面上),但是现在正在考虑添加背景,地板等。

我一直在阅读DecalPlane,但不确定哪种方法最好。我在每个级别上都具有相同的地板结构,但是具有不同的纹理。将来会提供更多的可扩展性吗?例如,斜坡,丘陵等。每个地板结构(无论是Decal还是Plane)都会无休止地重复,我想知道是否可以创建雾化效果以使地板随着距离而褪色。同样,它将具有向后重复的图素纹理(例如草,柏油碎石,污垢)。

也许甚至是静态结构,而只是将纹理向后移动?

任何想法都会很棒,谢谢。

最佳答案

您可能使用PlaneLike explained here)制作了某些meshpartbuilder,甚至使用Blender之类的应用程序制作了Model
由于您可以在一个ModelInstance中创建多个Model并为其指定不同的Material,因此您可以反复使用相同的Model。因此,您可以在XZ平面上创建一个4x4米(例如)大Model(它将只有1个面)。接下来,您创建10个ModelInstance,并将它们彼此添加:


第一平面:x = 0-4m,y = 0-0,z = 0-4m
第二平面:x = 4-8m,y = 0-0,z = 0-4m


等等。一旦角色的X位置> 4,就可以将translate ModelInstance firstPlane向前移至第十个平面的末端。因此其新的x为44-48米。
一旦达到新的水平或新的水平,或者您可以简单地更改MaterialModelInstance
对于背景,我建议阅读有关SkyBox es的内容。

希望我能帮上忙

关于java - libgdx 3d无限滚动地板,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22859197/

10-10 11:22