我刚刚结束了一场基于物理的游戏。我注意到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
}
}发布于 2017-01-09 15:32:51
您可以通过设置SKPhysicsBody的contactTestBitMask和collisionBitMask来帮助减轻CPU的负载。默认情况下,CPU会跟踪每个物理体及其与所有其他物理体的关系。通过设置contactTestBitMask和collisionBitMask,您可以告诉CPU只关心需要与物理体交互的对象。
https://stackoverflow.com/questions/41539637
复制相似问题