16.精灵进阶之节点命名

前端之家收集整理的这篇文章主要介绍了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相关文章