【问题标题】:Libgdx - maximum spritesLibgdx - 最大精灵
【发布时间】:2016-06-20 18:35:26
【问题描述】:

如果我要在屏幕上绘制大约 300 个精灵,旧手机会以 60 fps 的速度工作吗?碰撞只会与玩家一起检查!它适用于旧手机吗?

【问题讨论】:

  • 这是一个普遍的问题。你能提供更多关于你的游戏的细节吗?
  • 就是这样!我有由小圆圈组成的游戏对象,因此每帧屏幕上大约有 300 个圆圈,并且每帧都会对这 300 个圆圈进行碰撞检查,如果它们与玩家重叠!这就是每一帧都会发生的一切。旧手机会因为这么多精灵而出现任何延迟吗?

标签: android libgdx


【解决方案1】:

实际上对于旧设备没有灵丹妙药,而且 300 个圆圈对于绘图来说太多了,但这里有一些提高性能的常见技巧:

  1. 使用Object Pooling
  2. 不要在渲染循环中过于频繁地使用 batch.begin() 或 batch.end()。
  3. 不要为那些不在视口(屏幕)中的圆圈绘制或(可能)检查碰撞。
  4. 不要在渲染循环中创建新的纹理/精灵。
  5. 使用Texture Atlas,你也不需要300个纹理来绘制所有的圆。您可以为多个圆圈使用相同的纹理区域。
  6. 使用 Android Monitor 分析您的游戏。
  7. 看看android pref tips
  8. 不要使用安卓模拟器来测试你的游戏:)
  9. 单批最大精灵数量为5460个
  10. 查看performance tuning 获取精灵批处理

【讨论】:

  • 1: DONE, 2: MAX 2 CALLS, 3: DONE, 4: NEVER, 5: DONE,我也在旋转大部分精灵,所以成本会更高。同样在极少数情况下,最大为 250,但其他情况下约为 150-200。所以我应该没事吧?
  • 嗯,好像没问题
  • @SaeedMasoumi 你写了“300 圈太多了”,你的意思是“不是”吗?
【解决方案2】:

看到这个视频后,我决定使用 LibGDX:

https://www.youtube.com/watch?v=RBiq2SGs93U

也许对你也有帮助。

【讨论】:

  • 无评论。该死的,它打败了它的对手!实际上提高了我的信心。
猜你喜欢
  • 2014-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多