08.spritekit征程——场景中的动画

08.spritekit征程——场景中的动画

接着上文,显示静态的文字是否无法满足你的欲望,那么本文的内容绝对让你热血沸腾,记得小时候爱看动画,现在有这么一个机会让你来创作是不是想想都有点小激动呢。

动画的核心呢就是actions。在Sprite Kit 中的大多数action 其实就是改变节点(Node)的属性罢了。假如你还不了解节点是什么,建议好好谷歌百度下,虽说都是最基础的知识,但是我认为“万丈大楼平地起”,打好基础很是关键,另外就是坚持。

关于节点:

节点是最简单也是最难理解的一个概念。首先我们有一个SKView,会呈现多个场景(SKScene),一个场景中又有很多精灵(sprite)和其他内容,就好比上文说的那个”hello world”的文字就是一个node,甚至场景也是一个node,但是是一个根节点。以后我专门会弄一个章节来将Sprite Kit中各类之间的关系。

继续回到我们的action问题,记得前瞻说过,动作也是一个对象,该对象描述了你对节点做出的改变,比如平移、旋转、放缩等等,创建好这个对象之后,然后告诉节点去执行这个设计好的动作即可!最后场景进行渲染时,就会执行这些动作拉,动态显示我们设计好的一系列改变,直至所有动作完成。

赋予文本声明——To animate the text

  1. 还是先前的demo,给 helloNode增加额外的配置:

    //其实就是给该节点进行命名
    helloNode.name = "helloNode"
    

    所有节点都是有一个name属性的,就好比生娃取名来形容该节点。为什么要命名呢?试想下之后我们可能要取到该节点进行一些操作,如果有名有姓,绝壁能找到。

  2. 覆盖(override)父类方法中的touchesBegan(touches: NSSet, withEvent event: UIEvent)方法,在scene class中就能好到。SKScene最最基础类是UIResponder,因此能响应用户操作,当touch事件发生时,场景 就能接收到通知,然后我们通过名字来找到helloNode节点并且告诉它执行一个简短动画。
    override func touchesBegan(touches: NSSet, withEvent event: UIEvent){
        //记住 返回的是可选类型SKNode? 有可能得到nil  所以你要解包
        //比如你要查找的节点名字拼错就意味着找不到 等于nil
        if let helloNode = childNodeWithName("helloNode"){
            //纯手打,不对之处见谅
    
            //在x,y方向上移动相对举例,比如原来在(0,100) 执行下面之后是(0,200)
            //moveTo才是移动到具体某个位置
            let moveUp = SKAction.moveByX(0, y: 100, duration: 0.5)
    
            //放大操作
            let zoom = SKAction.scaleTo(2.0, duration: 0.25)
            //延迟
            let pause = SKAction.waitForDuration(0.5)
            //说白了就是透明度最终变0,即渐隐
            let fadeAway = SKAction.fadeOutWithDuration(0.25)
            //从节点树种移除该节点
            let remove = SKAction.removeFromParent()
    
            let moveSequence = SKAction.sequence[moveUp,zoom,
                                pause,fadeAway,remove]
            helloNode.runAction(moveSequence)
        }
    }
    
  3. Build and Run 。尽情享受吧
时间: 2024-08-04 19:18:52

08.spritekit征程——场景中的动画的相关文章

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

09.spritekit征程--场景的切换 上文讲到咱们的小精灵(sprite)在场景中"舞动",枯燥的学习似乎有了那么点意思.我相信各位看官都是想自己开发一款独有的游戏,自然就少不了绚丽的效果以及开场.因此今天咱们来对场景之间的切换进行入门. Sprite Kit对场景之间的切换简单到爆.在下面的例子当中,我们将创建第二个场景来学习其他游戏特性.前面的动画效果最终会导致"Hello World"文本从屏幕淡出,但这仅仅只发生在当然场景中.今天我们的任务是当文本消失

11.spritekit征程——结尾篇之节点的狂欢

11.spriteKit征程--结尾篇之节点的狂欢 本文是sprite kit征程的结尾篇,当然这仅仅还只是开始.另外我已经完成一款sprite Kit的教学软件.希望多多支持. 小节目录: 01.关于sprite_kit 02.SpriteKit前瞻之视图场景 03.sprite_kit前瞻之节点树 04.sprite_kit前瞻之纹理 05.sprite_kit前瞻之节点的动画 06.sprite_kit前瞻之创造"真实"的世界 07.spritekit征程--创建第一个场景 08

07.spritekit征程——创建第一个场景

07.SpriteKit征程--创建第一个场景 Sprite Kit 的内容被放置于窗口当中,即那些可视内容.Sprite Kit 之中的内容由SKView 类进行渲染(注:一般将普通的UIView转换成SKView是这么写的let skView = self.view as SKView ).由SKView 对象渲染的内容称之为场景,也就是Scene,它隶属于SKScene类.场景作为一个root node 又继承于UIResponder类,因此它能够响应用户的输入,当然还有其他丰富的内容使得

Unity3D 中 Generic 动画导入设置和 Root Motion 之间的关系

2条评论 Unity3D 的 Mecanim 动画系统可以直接复用 3DS MAX 中制作的动画文件中的位移,这个就是通过 applyRootMotion 来达成的,我们只需要在使用 Animator 控制动画播放的同时,设置 Animator 的 applyRootMotion 字段为 True 就 OK 了. 那么怎么来利用这个特性达成我们想要的一些效果呢?这个 applyRootMotion 到底指的是啥呢? ApplyRootMotion,从字面上理解来看,是『应用根节点的运动』,听起来

初识android中的动画

动画效果可以大大提高界面的交互效果,因此,动画在移动开发中的应用场景较为普遍.掌握基本的动画效果在成熟的软件开发中不可或缺.除此之外,用户对于动画的接受程度远高于文字和图片,利用动画效果可以加深用户对于产品的印象.因此本文给出安卓设计中几种常见的动画效果. 基础知识 在介绍安卓中的动画效果之前,有必要介绍一下安卓中的图片处理机制.图片的特效包括图形的缩放.镜面.倒影.旋转.平移等.图片的特效处理方式是将原图的图形矩阵乘以一个特效矩阵,形成一个新的图形矩阵来实现的.矩阵Matrix 类,维护了一个

【转】将3DMAX中的动画通过OGREMAX导入OGRE中,并生成相应的骨骼动画

原创内容转载请注明:http://weibo.com/gdexqin 程序代码的的基础在http://blog.sina.com.cn/s/blog_7c03dc6f01012um2.html中 先看导入后的效果. 动画模型是用别人传到网上的(好像这个人物叫真名法典的样子,不太认识,但是感谢上传者),之前我们已经完成了通过OGREMAX导入静态的场景的效果,导入骨骼动画我们需要对OGREMAX的导出选项进行一些修改. 下面先了解一下OGREMAX的一些基本选项(转自网络): ----------

游戏开发之UE4添加角色到场景中

接着上次继续学习,现在我们已经有了一个场景并且运行了,我们需要添加一个角色到场景中.要这样做,我们必须从UE4的GameFramework类继承它. 一. 创建一个从Character类继承的类 从基本框架类继承是很简单的: 1) 在项目中打开你的UE4编辑器. 2) 在文件,选择"新建C++类". 3) 这里你可以选择从Pawn类(Pawn类从控制器接收输入)继承或从Actor类继承.不过我们可以这里选择从Character类(角色)继承. 4) 点击继续,然后你可以命名这个类.这里

查看系统版本、32位与64位生产场景中的使用及对比

一.查看系统版本 [[email protected] ~]# uname -a #系统版本详细信息 Linux ysolin 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux [[email protected] ~]# uname -r   #内核版本 2.6.32-431.el6.x86_64 [[email protected] ~]# uname -m   #

前端编程提高之旅(十六)————jquery中的动画

    上一篇文章对jquery中的事件做了总结,这篇文章主要对jquery中的动画做一下总结归类.最近微信端分享中,有很多页面交互及动画做的非常受欢迎,非常符合移动端体验.看似花哨的动画从本质上都脱离不了编写动画的基本方法.乐帝将jquery动画部分内容,做了一个简单的归类.     如下图:     如上图所示,无论多复杂的动画,从实现上都采用这些最底层的动画方法.本篇将从动画方法和与动画状态有关的方法讲起.    一.动画方法    1.同时改变高.宽.不透明度方法    这里涉及show