SK中每个帧发生的情况图:
所以你看,SKScene是一个包含Nodes和Actions等所有有趣内容的类,并且是一切(对你很重要)发生的地方.您可以通过编辑器生成这些场景,但是您可能需要创建一个新的.swift文件(因为每个场景都有自己的逻辑).
编辑器只是初始化一堆东西的“捷径”,老实说,你可以用很少的代码制作完整的游戏(但你很快发现你想要更多)
因此,在此代码中,您声明GameScene或PauseScreen(它们基本上只是类声明,继承自SKScene),您很快就会发现这一行谈论ISNT场景:
(Read about SKVIEw here,and look at its inheritance):
overrIDe func dIDMovetoVIEw(vIEw: SKVIEw)
.. it’s calling a SKVIEw… what is that,and where dID it come from?07001
我们在GameVIEwController文件中找到这个SKVIEw声明(这只是一个类),注意它与普通的iOS应用程序大致相同,因为它继承了UIVIEwController:
overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() if let scene = GameScene(filenamed:"GameScene") { // Configure the vIEw. let skVIEw = self.vIEw as! SKVIEw skVIEw.showsFPS = true skVIEw.showsNodeCount = true /* Sprite Kit applIEs additional optimizations to improve rendering performance */ skVIEw.ignoresSiblingOrder = true /* Set the scale mode to scale to fit the window */ scene.scaleMode = .AspectFill skVIEw.presentScene(scene) }
同样,该方法在GameVIEwController.swift中声明,基本上就是这样:
class GameVIEwController:UIVIEwController
那么所有这些与iOS应用和SpriteKit有什么关系呢?好吧,他们都被捣碎在彼此之上:
IOS app解剖:
基本上,从右到左,你有一个窗口,它是(如果错误的话,我是错误的)AppDelegate,然后是VIEwController,然后是你的VIEw,里面有很多很酷的东西(故事板位于VIEw里面,就像SKScenes位于VIEw ….标签,节点或按钮内,都位于各自的类中((视图)))
这都是继承的三明治.
查看Apple网站了解更多信息.
https://developer.apple.com/library/safari/documentation/UserExperience/Conceptual/MobileHIG/ContentViews.html#//apple_ref/doc/uid/TP40006556-CH13-SW1
https://developer.apple.com/spritekit/
https://developer.apple.com/library/ios/documentation/SpriteKit/Reference/SpriteKitFramework_Ref/
https://developer.apple.com/library/safari/documentation/UserExperience/Conceptual/MobileHIG/Anatomy.html
基本上,一切都是继承自类继承的类的类,依此类推……它可能会变得混乱.你也可以通过CMD点击它们在Xcode中看到这些遗产,这会将你跳转到源文件.
Goodluck与您在SpriteKit的学习和冒险:)
总结以上是内存溢出为你收集整理的swift – GameViewController和SKScenes之间的区别全部内容,希望文章能够帮你解决swift – GameViewController和SKScenes之间的区别所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)