【发布时间】:2014-01-16 14:21:30
【问题描述】:
我正在使用 libgdx 开发游戏。现在我想在我的地图上放一个背景(地图大小尚未确定,我稍后再决定)。我的地图是基于瓷砖的,但我不使用 TiledMaps。所以我用自己的代码/编辑器创建和加载地图。
我现在的问题:我应该如何实现后台的东西?
我想过不同的方法:
加载一个巨大的图像,它覆盖了所有的地图。这不是很好,因为我渲染的东西不在我的
viewport (80 Tiles X,50 Tiles Y)中。将图像分成 4 个或更多图像并将其中一个加载到视口中。问题:在某些时候,可能所有图像的一部分都在视口中,所以所有图像都发送到 GPU 对吗?
有 1 张图像覆盖
viewport (80,50)并跟随相机。我认为最好的性能,但它看起来很愚蠢......或者每个图块都有自己的图像,并且在它们上方绘制对象。请注意,我只在视口内渲染 Tiles。但在 Gamestart 上,它需要加载关卡中每个图块的信息。
供参考:我的游戏是自上而下的,背景显示的是地板,因此不需要详细的山丘等,可能只是一些简单的沙漠沙子外观和类似的东西。还有其他更好的方法吗?
什么是性能和光学的最佳方式?
【问题讨论】:
-
只是我注意到的一个性能问题。为什么要渲染不在视口中的对象?你会损失很多性能。只需更新视口之外的 obj,不要渲染它们。
-
我不会在视口之外渲染图块,但是当图像的一部分在视口中时,我认为会渲染整个图像。错了吗?
-
不,没错。但只是想知道,因为您写道,您渲染的东西不在您的视口中。
-
只有第一个点和第二个点,因为图像在视口部分不是。所以对于其他 2 个解决方案,我不会渲染不在视口中的东西。
标签: java image background libgdx