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

16.精灵进阶之节点命名

时间:2015-04-28 14:09:32      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:sprite   spritekit   swift   

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:只有一个子动作,执行顺序当然就是周而复始。

具体如何操作,请见下文

16.精灵进阶之节点命名

标签:sprite   spritekit   swift   

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

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