저는 물리학을 기반으로하는 게임을 끝내고 있습니다. Xcode는 CPU 사용량이 약 21-26 %이므로 에너지 영향이 "매우 높음"이라고 말합니다. (나는 시뮬레이터가 아닌 릴리스 구성에서 iPhone 6을 사용하고 있습니다.) 각 노드의 SKPhysicsBody가 어디에 있는지 문제를 파악했습니다. 내가 physics body의 초기화를 주석 처리 할 때 CPU 사용량은 4-7 %로 떨어지고 에너지 영향은 "Low"라고 읽습니다. 누군가 나에게해야 할 일에 대한 통찰력을 줄 수 있습니까?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는 매 프레임마다 각 노드의 물리학을 계산해야합니다. –
@ 피어스 오 오케이, 노드가 5 개 또는 6 개 정도 많이 생성되지는 않습니다.하지만 계산에 대해 두 사람 모두 말한 것입니다. 감사합니다. – Muffinman2497