我是使用SpriteKit进行游戏开发的新手,到目前为止一切顺利,但实际上是内存管理部分。
我创建了第一个UIViewController作为关卡选择器,第二个UIViewController创建了游戏的SKScene。当我从SKScene返回到关卡选择器并且没有释放任何内存时,会出现问题。
在游戏SKScene中,当用户按下后退按钮进入关卡选择器时,我发布通知,告知第二个UIViewController执行segue。
//SKScene
[self removeAllActions];
[self removeAllChildren];
[self removeFromParent];
[[NSNotificationCenter defaultCenter]postNotificationName:@"toLevelSelector" object:nil userInfo:nil];
//Second UIViewController
- (void)toLevel:(NSNotification *)notif
{
[self performSegueWithIdentifier:@"toLevelSelector" sender:self];
}
您能否帮助我更好地了解skview或skscene从内存中释放的时间和地点?
答案 0 :(得分:0)
我认为内存未发布,因为你没有解除持有SpriteKit的视图控制器。当我第一次尝试在UIViewControllers中创建具有菜单的游戏然后按钮启动SpriteKit游戏时,我体验到关闭游戏不会结束计时器,声音,音乐等... 假设您有一个名为MainMenuViewController的UIViewController,它有一个调用GameViewController的按钮,您可以在其中运行SpriteKit Game。因此,为了完全关闭游戏,请尝试在退出游戏按钮
中实现此方法installations