私はちょうど物理学に基づいたゲームをやっています。私はXcodeがエネルギー使用量が「非常に高い」と言っていることに気付きました。CPU使用量が約21-26%であるため意味があります。 (私はリリース構成ではなく、シミュレータではiPhone 6を使用しています)問題がどこにあるかはわかりました。各ノードのSKPhysicsBodyです。物理系の初期化をコメントアウトすると、CPU使用率は4〜7%に低下し、エネルギーインパクトは「低」となります。誰かが私に何をすべきかについていくつかの洞察を与えることができますか?SKPhysicsBodyがCPU使用率を上げる
class Item:SKSpriteNode {
var id:[Int]
init(type: String, ID: [Int]) {
self.id = ID
var newTexture = SKTexture(imageNamed: type)
super.init(texture: newTexture, color: UIColor(), size: newTexture.size())
self.name = type
setPhysicsBody()
}
required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") }
func setPhysicsBody() {
physicsBody = SKPhysicsBody(circleOfRadius: 3)
physicsBody?.isDynamic = false
physicsBody?.categoryBitMask = bitMask.obstacleCategory
physicsBody?.contactTestBitMask = bitMask.ballCategory
physicsBody?.collisionBitMask = bitMask.ballCategory
physicsBody?.restitution = 0.05
physicsBody?.friction = 0.1
}
}
これはかなり予想される動作です。物理学の機関(実際にはすべてのゲーム)を利用するゲームについては、システムに課税されます。物理学に戻り、すべての複素積分をマイクロ秒単位で計算します。本当に、私はあなたが完全に正常な何かを強調していると思います。 – Pierce
再利用できる新しいノードを迅速に作成していますか?そうでなければ、これは予想される動作であり、CPUはフレームごとに各ノードの物理を計算しなければならない。 –
@Pierce Oh ok、ちょうど約5または6のノードがたくさん生成されていません。ありがとうございました – Muffinman2497