我是LIBGDX的新手,我为“英雄跑”精灵制作了40帧,我不知道使用spritesheet或单个图像是否更好. Spritesheet非常大,因为即使在1080p设备上我也想要很高的重量.你能告诉我在哪种情况下(spritesheet或个人图片)表现会更好吗?
解决方法
由于此处的其他答案并未指向错误的方向,但并非100%准确,我将添加更详细的解释.
在动画的情况下,它不应该在性能方面有所作为!
无论您使用spritesheet还是单个图像,它们都只会被发送到GPU一次.与spritesheets的唯一区别在于,您只需将纹理绑定一次,并且在渲染不同的东西时不会再强制更改它.
但这并不适用于你的英雄动画.无论是使用spritesheet还是单个图像,在每个帧中都需要再次绑定纹理,并且只绘制其中的一部分(在spritesheet的情况下)或整个图像(在单个图像的情况下),因为在两帧,你也渲染其他非英雄的东西.
如果你在一帧中绘制几个英雄,那么这是一个例外.使用单个图像,您每次都必须切换纹理,因为英雄可能没有同步.在spritesheet的情况下,你只绑定纹理一次,然后用一次sheet-texture绘制所有英雄(在这种情况下只会发生一次纹理绑定).
但是,如果你将角色 – 动画 – spritesheet作为另一个“更大”的spritesheet的一部分,你也肯定会获得性能提升,其中还包含其他纹理.这样,只需一个纹理绑定就可以再次绘制角色和其他东西.
spritesheets唯一的问题是,它们往往会浪费一些空间.特别是在移动设备上,当你被迫使用POT(2个幂)大小的纹理时,这可能会有所不同.