我有一个使用Sprite-Kit和Swift的游戏,在游戏中我会随机生成圆形从屏幕顶部落下到屏幕底部。
游戏一开始运行得很好(大约在60 FPS以下),但渐渐地FPS下降,游戏变得极慢... 我不明白为什么FPS会随着时间而下降(节点数量保持在8-10左右,所以它们离开屏幕后就被删除了) - 我在iOS模拟器和实际设备上都进行了测试,有什么想法吗?
我已经检查过,问题并不是来自内存泄漏。另外,我只使用一个视图控制器。
我认为可能导致这个问题的唯一函数是这个,但我不知道为什么:
游戏一开始运行得很好(大约在60 FPS以下),但渐渐地FPS下降,游戏变得极慢... 我不明白为什么FPS会随着时间而下降(节点数量保持在8-10左右,所以它们离开屏幕后就被删除了) - 我在iOS模拟器和实际设备上都进行了测试,有什么想法吗?
我已经检查过,问题并不是来自内存泄漏。另外,我只使用一个视图控制器。
我认为可能导致这个问题的唯一函数是这个,但我不知道为什么:
/* Function to generate single random circle */
func generateCircle() -> Void {
let circleSize:CGFloat = CGFloat(arc4random_uniform(40) + 3)
let xPosition:CGFloat = CGFloat(arc4random_uniform(UInt32(size.width)))
var randomCircle = SKShapeNode(circleOfRadius: circleSize)
randomCircle.strokeColor = SKColor.redColor()
randomCircle.fillColor = SKColor.redColor()
randomCircle.physicsBody = SKPhysicsBody(circleOfRadius: circleSize)
randomCircle.physicsBody?.dynamic = false
randomCircle.position = CGPoint(x: xPosition, y: size.height + circleSize*2)
randomCircle.physicsBody?.dynamic = true
randomCircle.physicsBody?.categoryBitMask = randomCirclesGroup
addChild(randomCircle)
}