我正在为我的游戏制作一个效果,我从屏幕的边缘有几颗(200颗)星,在逐渐消失的同时向中间移动。
我想要自己渲染每颗星(因为它是自己的物体),这样星星可以有速度,渐变时间,大小和位置。但是我害怕它可能会影响旧手机的性能,改变alpha并每帧渲染200个精灵最多20秒(我在淡出时重新创建它们)。
作为替代方案,我可以使用更大块的星星作为相同的精灵(一张图像),这意味着我将不得不牺牲随机效果,星星将同时淡出,这样看起来不会那么好。
我无法在旧手机上进行测试,所以我会在这里问一下,每帧超过200个精灵(小图像,我在每个帧和位置改变alpha)?是否有一种替代方法不会迫使我放弃每颗恒星的随机行为?或者我只需要咬紧牙关并渲染更大的图像(可能是3-4张不同的图像,每张图中有几颗星)?
答案 0 :(得分:1)
您可以尝试使用Flyweight pattern,可以找到一个很好的解释和教程here。基本上你所做的是你的精灵的默认模型(在这种情况下,你的星星),然后在不同的位置绘制它。
你不必牺牲你提到的随机效果,只需要让它适应你的模型,这样每个物体都可以同时具有淡出效果。在附加示例中,它们改变了网格的位置,但我想你可以扩展它以允许改变其他参数。
另外,请检查libgdx wiki的this part,了解性能调优。
另一个选择是检查你的应用程序性能(使用cpu,gpu,内存,大多数IDE都有工具来测量它),然后与旧手机性能统计数据进行比较。
但是,如果您想要包含旧手机,我想最终您将不得不在这些型号中测试此应用。