我刚刚完成了基于物理学的游戏。我注意到Xcode说能量影响是“非常高”,这是有道理的,因为CPU使用率约为21-26%。 (我在发布配置中使用了iPhone 6,而不是模拟器)我想出问题似乎在哪里是每个节点的SKPhysicsBody。当我注释掉物理主体的初始化时,cpu使用率下降到4-7%,能量影响读数为“低”。有人可以给我一些关于该做什么的见解吗?
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
}
}
答案 0 :(得分:0)
您可以通过设置SKPhysicsBody
的{{1}}和contactTestBitMask
来帮助减轻CPU负担。默认情况下,CPU会跟踪每个物理主体及其与所有其他物理主体的关系。通过设置collisionBitMask
和contactTestBitMask
,您可以告诉CPU只需要担心物理主体需要与之交互的对象。