最近写Action快写吐了= =主要是各种:create,而且不带的时候的错误提示也很
模糊(因为一般会写的很长),所以做了这个东西,大家如果喜欢可以用~
直接放到项目下,然后require就可以了,会自动增加一个全局的cca的表,里面
有cocos所有的Action的包装。
比如说要在2秒内把节点移动到10,10:
cca.moveTo(2.0, 10, 10)
:addTo(node)
```
具体支持的Action的名字可以在代码里面看到。
另外,提供了一个ActionBuilder类,用于构建复合Action。直接构建Action写
起来会比较麻烦,比如说,如果希望在2秒内将节点旋转180度,等待1秒然后调
用一个函数,如果直接用quick需要这么写:
node.runAction(cc.Sequence:create(
cc.RotateTo:create(2, 180),
cc.DelayTime:create(1),
cc.CallFunc:create(function() print "here" end)))
```
使用cca,可以变得简单一点:
node.runAction(cca.seq {
cca.rotateTo(2, 180),
cca.delay(1),
cca.cb(function() print "here" end),
})
```
如果用builder,可以更简单一点:
cca.builder()
:rotateTo(2, 180)
:delay(1)
:cb(function() print "here" end)
:addTo(node)
```
builder支持"seq", "spawn", "loop", "reverse", "speed", "rep",
"targeted" 等各种不同的组合方式,也支持嵌套Action,比如这样:
cca.builder "spawn"
:begin "seq"
: rotateTo(2, 180)
: delay(1)
: cb(function() print "here" end)
:done()
:begin("rep", 3) -- 重复三次
: moveBy(1, 10, 10)
: blink(2, 3)
:done("in", 0.25)
:addTo(node)
```
可以用begin/done做嵌套,done里面可以为整个块提供ease。当然ease也是普通
的cca函数,可以自行独自使用。
这个模块的代码放到了pastebin上,感兴趣的可以自行下载:http://pastebin.ca/2871628
另外,这个可以合并到quick-x里面去吗?