16.精灵进阶之节点命名

16.精灵进阶之节点下篇

一般情况下,想要知道节点正在执行哪个动作,你一无所知;想要移除众多动作中的一个,你却只能删除所有。你还在苦恼吗?那么给“动作命名”(named actions)消除以上所有的障碍。已命名的动作都使用一个独一无二的关键字(key name)来标识自身。如此,你能够移除、找到以及替换掉一个附着于节点之上已命名的动作。对先前代码稍作改变,自然就是给动作添加一个key如下:

//注意这里在通知spaceship执行runAction动作同时,也给动作命名了!
//这样我们才能在之后的代码中对该动作移除等等操作
let moveNodeRight = SKAction.moveByX(100.0,y:0.0,duration:1.0)
spaceship.runAction(moveNodeRight,withKey:"ignition")

下面是一些key-based方法

  • runAction:withKey: 执行动作同时给其命名。
  • actionForKey:通过key值来确认某个动作是否正在被执行。
  • removeActionForKey:通过key值来移除动作。

执行一组动作(sequence or group)

Sprite Kit框架提供了许多标准动作类型,用以改变场景中节点的属性。但是只有当你将动作“排列组合”起来才能发挥他们的作用。通过动作之间配合,我们能够创建更为复杂和生动的动画,但是它仍然以单个动作存在并运行在一个节点上(很有意思)。现在是时候来学习sequence,grouprepeating这三类动作了。

  • sequence Action:动作队列,包含一组子动作,执行顺序从头至尾,有条不乱,只有当前一个动作结束,紧跟着的动作马上开始。想象人们排队进场,一个个进入的场景,是不是有点感觉
  • group Action:动作组,也包含一组子动作,执行顺序大家平等,都是从同一时间点开始执行。现象跑步比赛,一群人都在同一个起跑线,发令枪一开,大家冲出去,当然有快有慢,这个是不可避免的。
  • repeating Action:只有一个子动作,执行顺序当然就是周而复始。

具体如何操作,请见下文

相关文章

Swift 正式开源!Swift 团队很高兴宣布 Swift 开始开源新篇章。自从苹果发布 Swfit 编程语言,就成为了...
快,快,快!动动您的小手,分享给更多朋友! 苹果去年推出了全新的编程语言Swift,试图让iOS开发更简单...
开发者(KaiFaX) 面向开发者、程序员的专业平台! 和今年年初承诺的一样,苹果贴出了Swift语言的源码,...
本文由@Chun发表于Chun Tips :http://chun.tips/blog/2014/12/11/shi-yong-swift-gou-jian-zi-ding-yi...
本文由CocoaChina译者leon(社区ID)翻译 原文:THE RIGHT WAY TO WRITE A SINGLETON 在之前的帖子里聊过...
本文由CocoaChina译者leon(社区ID)翻译 原文:THE RIGHT WAY TO WRITE A SINGLETON 在之前的帖子里聊过...