当我尝试从“主菜单”场景转换到“AI游戏场景”时,我的应用程序挂了大约2秒钟。所有动画都会冻结,应用程序在短时间内不会执行任何操作。
这是我转换到新场景的代码。如果您需要查看任何其他代码来诊断问题,我可以提供它!
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
/* Called when a touch begins */
for touch in (touches as! Set<UITouch>) {
//location is where they touched
let location = touch.locationInNode(self)
//the node at that location
let selectedNode = self.nodeAtPoint(location)
if(selectedNode.name == "Play AI"){
let transition = SKTransition.crossFadeWithDuration(2)
let scene = AIGameScene(size: self.scene!.size)
scene.scaleMode = SKSceneScaleMode.AspectFill
self.scene!.view!.presentScene(scene, transition: transition)
}
}
我用'print'语句包围了以下行,发现这是导致挂起问题的行:
self.scene!.view!.presentScene(scene, transition: transition)
有趣的是,它只会在第一次转换到此场景时挂起。当我完成我的游戏并返回主菜单后,我可以再次点击“Play Versus AI”,这次应用程序将不会挂起!同样,转换回主菜单屏幕也不会挂起。这是第一次。