我使用Sprite Kit創建遊戲,並且我有一個問題,遊戲在每次重複我的主場景時都會慢慢失去fps。SpriteKit遊戲在主場景重啓後丟失FPS
我試過使用Xcode的工具,但沒有得到更接近我的問題的根源。
這是我的函數來結束比賽,目前遊戲對場景:
func endGame(){
let endGameScene = SKScene(fileNamed: "EndGameScene") as! EndGameScene
endGameScene.score = score
//let transition = SKTransition.push(with: SKTransitionDirection.right, duration: 0.5)
self.view?.presentScene(endGameScene)
transitionNode = SKSpriteNode(color: UIColor.white, size: self.frame.size)
transitionNode.zPosition = 5
self.addChild(transitionNode)
transitionNode.run(SKAction.fadeIn(withDuration: 0.3))
gameOver = true
}
這是我的功能來呈現遊戲場景爲 重啓按鈕之中的結果拍了拍:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch = touches.first
if let location = touch?.location(in: self) {
let nodeArray = self.nodes(at: location)
if(nodeArray.first?.name == "replayButton"){
self.view?.presentScene(gameScene)
transitionNode = SKSpriteNode(color: UIColor.white, size: self.frame.size)
transitionNode.zPosition = 5
self.addChild(transitionNode)
transitionNode.run(SKAction.fadeIn(withDuration: 0.3))
我還檢查FO r使用儀器泄漏,但沒有出現。同樣,最重的堆棧跟蹤日誌顯示中花費最多的時間我的類文件沒有的區域,如下所示:(無法上傳圖片出於某種原因,所以這裏的鏈接)
https://puu.sh/wtrMZ/1bb8c6542a.png
遊戲以固定的60 fps開始,然後下降到58,然後下降到57,然後下降到55,然後下降到54,依此類推。我嘗試了deinit {}測試,並且場景釋放正常。我使用調試器來檢查我的內存使用情況,雖然它的確有點輕微上升,但在一次性使用中幾乎不會突破50 MB。我也並不認爲這是刪除未使用的節點的問題,因爲我一定要刪除它們在每種情況下,但我可能是錯的:
DEINIT
deinit {
self.removeAllChildren()
}
我是真的因爲我甚至不知道如何開始解決這個問題。非常感謝任何幫助或建設性的批評,謝謝。
編輯:
我從來沒有失效的兩個主要計時器在我的遊戲場景類。我只是失效他們在我的殘局功能:
`FUNC殘局(){
let endGameScene = SKScene(fileNamed: "EndGameScene") as! EndGameScene
endGameScene.score = score
//let transition = SKTransition.push(with: SKTransitionDirection.right, duration: 0.5)
self.view?.presentScene(endGameScene)
transitionNode = SKSpriteNode(color: UIColor.white, size: self.frame.size)
transitionNode.zPosition = 5
self.addChild(transitionNode)
transitionNode.run(SKAction.fadeIn(withDuration: 0.3))
pillarTimer.invalidate()
durationTimer.invalidate()
gameOver = true
}`
固定我的問題很好。
當您重新演出場景時,您不會刪除一件東西,nada,nadie。此外,不要通過遊戲場景來完成。讓視圖控制器去做。 –
你能否提供一些細節? – Grilled