【发布时间】:2018-08-07 11:12:26
【问题描述】:
这是最简单的动画:一个黑洞在屏幕中间旋转。这两行代码将 cpu 使用率从 3% 提高到 31%,能源影响从低到高(有时甚至非常高):
let actionLoop = SKAction.repeatForever(SKAction.rotate(byAngle: CGFloat(360), duration: 1000))
hole.run(actionLoop)
这正常吗?我读过或多或少类似的讨论,但没有找到明确的答案。这是整个代码和屏幕:
import SpriteKit
import GameplayKit
class GameScene: SKScene {
// Basic for dynamic sizes step01
var width = CGFloat()
var height = CGFloat()
override func didMove(to view: SKView) {
// Basic for dynamic sizes step02
width = self.frame.size.width
height = self.frame.size.height
// test background color
self.backgroundColor = .yellow
// set blackhole
let hole = SKSpriteNode(imageNamed: "blackhole")
let startPosition = CGPoint(x: 0, y: 0)
hole.size = CGSize(width: width/8, height: width/8)
hole.position = CGPoint(x: startPosition.x, y: startPosition.y)
let actionLoop = SKAction.repeatForever(SKAction.rotate(byAngle: CGFloat(360), duration: 1000))
hole.run(actionLoop)
self.addChild(hole)
}
}
更新:最后但同样重要的是:它不是模拟器。我在真机上测试。
【问题讨论】:
-
这是在模拟器上还是在设备上?模拟器中的 CPU 利用率可以忽略不计,因为它与应用在真实设备上的执行方式没有任何相似之处。
-
不,它不是模拟器。这是一个真正的设备。我马上更新。
-
您的 ipad 还有什么问题? ipad 的行为与 iphone 不同,因此您的 ipad 上运行的应用程序可能会导致这些数字跳跃
-
好的,我现在在我的 iPhone 上测试了它。 CPU 使用率:同一张图片,35% 有动画,3% 没有。有趣的是,这两种情况下的能源影响都是零!谢谢。
-
再次被 iPad 检查。不,它不依赖于其他应用程序。我只运行了这段代码,结果和以前一样。
标签: animation sprite-kit rotation cpu-usage energy