首页 > 代码库 > lua简化cocos2dx的Action动画序列

lua简化cocos2dx的Action动画序列

 

情景

今天写代码时,又要写一个很常见的动画,就是变大变小模拟那个弹性的赶脚,很常用但写起来挺麻烦,突然思绪来了,其实代码可以很简洁,多亏了lua的灵活呀,真方便。

当然我也知道有缓动动画(EaseAction)可以实现反弹效果,但这不是重点

使用

-- 模拟3个cc.ScaleTo,但是不限于3个,个数没有限制-- 1> 0.08秒 放大1.2倍-- 2> 0.1秒  放大0.9倍-- 3> 0.1秒  放大1倍actionScaleTo(0.08,1.2, 0.1,0.9, 0.1,1)

实现

-- 就是根据参数动态生成lua代码,然后使用loadstring加载代码function actionScaleTo(...)    -- 奇数位置是时间,偶数位置是倍数    local arg = {...}    local container = {}    for i=1, #arg, 2 do        local xstr = string.format(" cc.ScaleTo:create(%f,%f)", arg[i], arg[i+1])        table.insert(container, xstr)    end    local actions_str = table.concat(container, ",")    local xstr = string.format("return cc.Sequence:create(%s )", actions_str)    return loadstring(xstr)()end

 

lua简化cocos2dx的Action动画序列