展开segue以查看包含SpriteKit的控制器的SKView非常慢

Dev*_*vin 2 iphone ios sprite-kit

我刚开始玩SpriteKit,这个问题几乎立刻就出现了.如果我有一个视图控制器,其视图是SKView,在其上推动另一个视图控制器(例如,暂停菜单或结束游戏菜单),然后使用SKView展开回视图控制器需要相当长的时间,根据我对4S和5的经验,约一秒半.

您可以使用默认的Hello World模板对此进行测试.我将其设置为导航视图的根控制器,并在导航栏中粘贴一个按钮以触发推送到新视图控制器的segue.第二个视图控制器包含一个触发展开segue的按钮.当按下按钮时,它会保持突出显示大约一秒半,然后最终发生segue,这对用户来说是非常刺耳的.

我已经浏览了SpriteKit文档并且没有注意到有关正确使用segue的任何内容,这只是一个错误,还是在SKView上推送新视图被认为是不好的做法?相反,我应该使用SKNodes/SKScenes来呈现我的暂停和结束游戏菜单,从而始终将SKView保留在屏幕上吗?

Bok*_*kos 5

我有一个类似的问题,发现很有帮助.我打算使用多个UIViewControllers导航到我的游戏的不同部分,如菜单屏幕,屏幕上的游戏等,但它很慢.在重构我的应用程序以使用其视图为SKView类型的单个UIViewController,并为我想要的每个屏幕创建一个新场景后,它开始正常工作.起初我认为这将是一个痛苦,因为控制器最终会变得无法管理,但发现大多数逻辑都封装在每个SKScene中,并且控制器仅用于呈现新场景.

此外,您应该注意,从SKScene向SKView添加UIKit控件是可以接受的.这是我正在做的,以避免每次我需要UIScrollView,UIButton或任何其他UIKit控件时重新发明轮.当然,在转换时,您必须删除不想在场景之间共享的UIKit内容.