2011-08-27 32 views
1

我有一个基于水平的游戏,它使用平铺引擎来呈现这些关卡。有很大一部分的层面像地面和天空一样保持静止。
我曾经想过将地面和天空从瓦片数据预渲染到渲染纹理,并且只画出每一帧而不是每帧画出一堆预制图。
整个关卡在任何时候都是可见的,所以对于不会被绘制的东西没有任何关注。
我可以看到渲染纹理的唯一缺点是,它占用了内存空间(虽然是图形的),而预制件很小并且在整个地方复制。
有什么更好?预先绘制整个事物,或者只是绘制所有预制件的每一帧?预绘制我的关卡的静态部分

回答

0

瓷砖贴图的重点在于,您可以多次重复使用图像的某些部分,从而节省内存,并且在大多数情况下,渲染速度更快。由于您很可能会在地图上移动物体,因此无论如何您都需要在每一帧中渲染地面和天空图像,否则,您将在任何地方都产生残像!测试这个最简单的方法是尝试两种方法,并使用工具来了解每种方式如何影响速度,内存和电池寿命。

我玩过两种方式,我发现瓷砖地图对于背景图像来说大部分效率更高,但它们要维护起来要困难一些。

我的一般经验法则是,如果我的背景中有一堆部分可能是重复的瓷砖,而瓷砖的大小大约是整个图像大小的50%或更少,我实现瓷砖地图。否则,我只是使用图像。另外一点需要注意的是,如果你的天空全是一种颜色,并且在任何地方都没有区别,那么我发现最好的办法是拍摄一个1像素的图像(或者白色像素,它的颜色是你的天空的颜色!)并将其缩放到合适的尺寸。这很容易维护,并且在速度,内存和电池寿命方面很容易,但是您确实牺牲了细节。

希望有助于!