码迷,mamicode.com
首页 > 其他好文 > 详细

09.spritekit征程——场景的切换

时间:2015-03-06 11:18:44      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:精灵   效果   开发   hello world   sprite   

09.spritekit征程——场景的切换

上文讲到咱们的小精灵(sprite)在场景中“舞动”,枯燥的学习似乎有了那么点意思。我相信各位看官都是想自己开发一款独有的游戏,自然就少不了绚丽的效果以及开场。因此今天咱们来对场景之间的切换进行入门。

Sprite Kit对场景之间的切换简单到爆。在下面的例子当中,我们将创建第二个场景来学习其他游戏特性。前面的动画效果最终会导致“Hello World”文本从屏幕淡出,但这仅仅只发生在当然场景中。今天我们的任务是当文本消失后,创建一个场景,然后进去切换过渡。你要问我原来的Hello Scene怎么办?无情抛弃掉吧!

创建太空船场景

  1. 闲话少说,新建一个类命名为SpaceshipScene,当然又是继承于SKScene

  2. 接下来添加一些基本代码来实现场景中的内容,代码和原先的hello scene差不多。

    //省略上面一些东东 纯手打手误处 请见谅
    private contentCreated:Bool = false
    
    override func didMoveToView(view: SKView) {
    
        //判断是否是第一次创建 
        if(!self.contentCreated){
            //置位 以后就不会在执行这里的代码拉
            self.contentCreated = true
    
            //这个方法还要添加新内容
            createSceneContents()
        } 
    }
    
    func createSceneContents(){
        self.backgroundColor = SKColor.blackColor()
        self.scaleMode = .AspectFit
    }
    
  3. 创建完第二个场景,我们来谈下感受,SkScene中使用didMoveToView方法和使用ViewDidLoad()同样频繁,因为它们要做的事情都是必须预先设置好的。至于那个标志位,只是确保只执行一次代码。

  4. 现在回到HelloScene.swift中,我们要略微修改下原先的代码,之前是这样的,一旦你点击屏幕,hello world文本就进行我们设计好的动画,最后被移除,执行方式使用runAction。现在我们的目的是执行完动作之后切换到另外一个场景,因此我们换一个执行方式为runAction(action: , completion: ),一瞥就知道不同之处是多了后面一个completion,这是一个闭包(是一个函数,你暂时理解为一个函数吧),即前面动作执行完之后要进行什么操作,一般我们会赋值nil,即完成动作后啥也不要干。而现在的任务就是替代nil,换成我们设定的任务:创建场景,然后切换。代码如下:

    hello.runAction(moveSequence,completion:{
        //实例化一个宇宙飞船场景实例!!
        let spaceshipScene = SpaceshipScene()
        //创建一个新的场景过渡方式 
        let doors = SKTransition.doorsOpenVerticalWithDuration(0.5)
        //呈现
        self.view.presentScene(spaceshipScene, transition: doors)
    })
    
  5. Build and run !!!

有话要说!!
关于一些函数如何理解,对于英语好或者不好的同志,我始终都建议仔细读一遍函数名字,用用有道拉,谷歌翻译拉,会加速你对函数的理解,因为太直白了。假如死记硬背,或者用到时候再去搜,当然也是可以的,熟能生巧嘛。不过新手学习过程时,我建议放慢一下自己的脚步,对于代码阅读方式稍作改变最佳!囫囵吞枣,填鸭式不是很推荐。写这个系列文章时,我也是刚起步学习,因此我和大多数新手是同一起跑线的。

09.spritekit征程——场景的切换

标签:精灵   效果   开发   hello world   sprite   

原文地址:http://blog.csdn.net/colouful987/article/details/44097099

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!