【问题标题】:Reducing battery usage on a SpriteKit game减少 SpriteKit 游戏的电池使用量
【发布时间】:2017-02-07 17:59:17
【问题描述】:

我已经在 SpriteKit 中完成了一款名为Up and Down the River的纸牌游戏。这是一个相当简单的纸牌游戏,只有一些动画,例如发牌和出牌的动作。

根据调试器工具,通常是非常高的能源利用率,平均值接近每秒 170 次唤醒。 (如下图)

SpriteKit 游戏的典型特征是什么?一个简单的纸牌游戏应该使用这么多能量吗?如果没有,我应该寻找什么来减少能源使用?

注意:这是在 macOS 上运行的,但是游戏是跨平台的(即 iOS 和 macOS)。在 iOS 设备上运行时,我得到了类似的结果。

【问题讨论】:

  • 使用 SpriteKit 已经是某种优化,因为该框架已经过优化,可提供出色的性能和最佳的能源效率。顺便说一句,您的绘图调用次数是多少(skView.showsDrawCount = true),您使用图集吗?首先,我建议您减少每秒的图像数量。
  • Draws 平均在 20 到 30 之间,Nodes 从 52 开始,每轮增加 4 直到达到最大值 88,然后再减少 4 回到 52。我没有使用地图集,它们会提高性能/能源效率吗?
  • 您应该使用地图集(或至少尝试一下)。这将提高您的表现,并可能减少一定百分比的电池使用量。

标签: ios swift sprite-kit battery


【解决方案1】:

当 SpriteKit 运行时,它会不断更新屏幕(通常每秒 60 帧)。

如果您不需要这么高的速度,您可以通过在 SKView 上设置 preferredFramesPerSecond 将其降低到每秒 30 或 20 帧或更低,请参阅https://developer.apple.com/reference/spritekit/skview

如果您的游戏在等待用户输入时完全静止,您甚至可以在 SKView 上设置 isPaused 以在您等待时完全停止更新。

【讨论】:

  • 他们实际上在 iOS 10 中改变了这一点。SpriteKit 现在只在场景发生变化时渲染。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-25
  • 1970-01-01
相关资源
最近更新 更多