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

具体如何操作,请见下文

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值