对高效动画一无所知,所以非常感谢!我在java中使用libgdx,并且在我的游戏中有128px水瓦片需要动画。我目前使用19帧动画,但我已经从2-19更改了这个数字,我将从60fps(上限为60)变为20fps。
我唯一能想到的就是反复调用以获得正确的纹理,因为我正在使用一个相当强大的显卡,它可以非常轻松地处理具有更多动画的Java游戏。我如何在这里提高性能?
干杯
答案 0 :(得分:1)
使用分析器查找花费的时间。您可以使用分析工具,也可以只使用时间戳(我使用java.lang.System.nanotime())检查来丢弃代码,并保持定期打印的直方图或打印“异常值”,甚至在屏幕上绘制结果。
虽然你或我可能会猜到时间的推移,但是拥有可以帮助你真正找到花费时间的工具会更有效率。
答案 1 :(得分:0)
使用分析器的答案是很好的建议。但是,如果您尚未打包纹理,那么这样做是个好主意,因为这会减少正在使用的纹理数量,从而减少(相对昂贵的)纹理切换的数量。鉴于你有方形纹理,你可以只是平铺它们。
这就留下了纹理有多大的问题。这取决于设备,并且针对Android设备进行了here讨论。
即使将相对少量的纹理打包到单个纹理中,仍会减少纹理切换的次数。例如,纹理大小限制为1024px x 1024px将允许您打包64个128x128纹理。这将满足您对19个纹理的需求,而无需纹理切换。 同样,纹理大小限制为512px x 512px,可以打包16个128x128纹理,因此只需要一个纹理切换。