我正在試驗一下Sprite Kit,我注意到當我讓我的應用程序運行一段時間後崩潰。應用程序崩潰:內存問題?
我想要做的,是畫遵循我的球員運動的線,我這樣做,像這樣:
var ref: CGMutablePathRef = CGPathCreateMutable()
var shapeLine: SKShapeNode!
override func update(){
shapeLine.removeFromParent()
CGPathAddLineToPoint(ref, nil, player.position.x, player.position.y)
shapeLine = SKShapeNode(path: ref)
shapeLine.lineWidth = 3
shapeLine.path = ref
addChild(shapeLine)
}
這工作得很好,我刪除節點每次,更新路徑,並用新路徑創建另一個節點。
重點是幾秒鐘後(約25)它崩潰。 節點是不變的,因爲我每次都添加和刪除節點。幀速率在碰撞前開始減小,並從30fps變爲20fps。
我覺得奇怪的是內存的使用,它增加了很多,甚至在崩潰前使用大約800MB。
有沒有我遺忘的東西,還是隻是道路增加太多而無法處理?
爲什麼不嘗試做一個實驗來改變已經存在的'shapeLine'的路徑,以查看問題的一部分是否來自不斷創建新的'SKShapeNode'。換句話說,創建'shapeLine'一次,然後在其他時間,只需更新路徑。 –
已經嘗試過,結果相同:/ – DevX10
運行頻率如何?每一幀?例如,在25秒內,調用了多少次'update'? –