我正在构建一个读取二维数组以创建地图的游戏,但是墙壁都与角落和地板分开,每面墙,每个角落和每层地板都是一个单独的图像,这会消耗很多CPU,但我真的想创造一种随机的地图感觉,这就是为什么我为每个角落和墙壁使用图像。
我在想也许我可以通过合并 2 个或更多不同的纹理来生成纹理,以提高性能。
有谁知道我怎么能做到这一点?或者也许是另一种解决方案?将图像转换为 PVR 会有什么不同吗?
谢谢
我正在构建一个读取二维数组以创建地图的游戏,但是墙壁都与角落和地板分开,每面墙,每个角落和每层地板都是一个单独的图像,这会消耗很多CPU,但我真的想创造一种随机的地图感觉,这就是为什么我为每个角落和墙壁使用图像。
我在想也许我可以通过合并 2 个或更多不同的纹理来生成纹理,以提高性能。
有谁知道我怎么能做到这一点?或者也许是另一种解决方案?将图像转换为 PVR 会有什么不同吗?
谢谢
对于初学者,您应该使用使用 TexturePacker 之类的工具创建的纹理图集,将尽可能多的“图像”分组到单个图集中。基本上只加载一次,然后根据需要创建任意数量的精灵,而无需重新加载。使用 PVR 将加快加载速度,并有益于您的捆绑包大小。
其次,特别是对于地图背景,您应该使用您在上面的精灵表中初始化的 CCSpriteBatchNode。然后,当您创建图块时,只需创建精灵并将其添加到批处理节点即可。将批处理节点添加到您的场景中。这样做的好处是,无论批处理节点中包含多少精灵(瓦片),这都将在单个 GL 调用中绘制。现在,从性能的角度来看,您将从那里获得最大的收益。
最后,使用模拟器运行时不要依赖 FPS 信息。模拟器不使用主机的 GPU,其性能远低于您在设备上获得的性能。因此,在发布有关性能的问题之前,请确保您在设备上进行测量。