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
时间: 2024-08-27 23:15:03

lua简化cocos2dx的Action动画序列的相关文章

Cocos2d-x Lua中实例:帧动画使用

下面我们通过一个实例介绍一下帧动画的使用,这个实例如下图所示,点击Go按钮开始播放动画,这时候播放按钮标题变为Stop,点击Stop按钮可以停止播放动画. 帧动画实例 下面我们再看看具体的程序代码,首先看一下看GameScene.lua文件,它的代码如下: [html] view plaincopy local isPlaying = false -- 播放标识                                                                    

cocos2dx 运动+旋转动画 CCSequence CCAnimation CCAnimate CCMoveTo CCCallFuncN

cocos2dx 动画是个很神奇的东西~~, 这里看到的是一个物体,在运动的过程中会不断地翻转的过程.    两个动画一起来~~ 下面的代码中涉及到:CCAnimation(补间动画 )  CCAnimate(动画)  CCDelayTime(延迟动作)  CCFadeTo(设置透明态度) CCSequence(动作序列)  CCSpawn(让精灵的若干个动画同时执行)  CCRepeateForever(无限循环)  CCCallFuncN(瞬时动作中  node回调函数)  CCMoveTo

用cocos2d-x 实现UV动画--实现篇

用cocos2d-x 实现UV动画--实现篇 UVSprite uv动画是指通过在程序运行时动态改变纹理坐标,实现动态效果的纹理动画,使用uv动画可以实现水流动,火焰燃烧等效果. 本文由liangneo原创,转载请保留原文地址 :http://blog.csdn.net/liangneo/article/details/42583533 1.分析 我们需要的是一个具uv动画的sprite,最简单合理的方式是让你UVSprite直接继承于CCSprite,另外我们还需要两个变量来控制U或V方面是否

cocos2d-x使用DragonBones动画

前言 在网上查找关于DragonBones在cocos2d-x的使用教程,找了大半天也没有找到一个有用的.在自己摸索了一段时间终于摸索了出来,在这里记下分享给大家. 下载DragonBones 我这里使用的是别人修改的DragonBones,这个是针对cocos2d-x修改的,很方便使用.点击链接 动画处理 我这里使用的是DragonBones自带的工程Dragon.fla.打开这个工程,选着到处cocos2d-x的plist方式. 具体流程 更多内容还请移步 http://www.sollyu

unity5, animator state machine, 无条件transition实现播放动画序列

今天遇到这样一个需求,我有一个名为happy的animation clip和一个名为speak的animation clip.想实现当主角胜利后播放动序列: happy->speak->happy->speak->... 这样无限循环. 走了一些弯路后发现直接在animator state machine里就可以搞定,如下图: transition{idle->happy}上condition设为triggerWin,由于idle到happy的transition不能太拖沓,

用cocos2d-x 实现UV动画--基础篇

用cocos2d-x 实现UV动画--基础篇 uv坐标与渲染 uv动画是指通过在程序运行时动态改变纹理坐标,实现动态效果的纹理动画,使用uv动画可以实现水流动,火焰燃烧等效果. 本文由liangneo原创,转载请保留原文地址 :http://blog.csdn.net/liangneo/article/details/42582947 1.什么是UV坐标 uv坐标是指纹理映射到绘制体(一般为三角形的顶点)上的坐标,纹理贴图文件(png,jpg图片)在计算机中的一般都抽象为一个二维平面.水平方向是

css3的动画特效--动画序列(animation)

首先复习一下animation动画添加各种参数 (1)infinite参数,表示动画将无限循环.在速度曲线和播放次数之间还可以插入一个时间参数,用以设置动画延迟的时间.如希望使图标在1秒钟后再开始旋转,并旋转两次,代码如下 .close:hover::before{ -webkit-animation: spin 1s linear 1s 2; animation: spin 1s linear 1s 2; } (2)alternate参数.animation动画中加入反向播放参数alterna

0065 animation:动画、动画序列、动画常见属性、 动画简写方式、速度曲线细节、案例大数据热点图、案例奔跑的熊大

什么是动画 动画是 CSS3 中最具颠覆性的特征之一,可通过设置多个节点来精确的控制一个或者一组动画,从而实现复杂的动画效果 动画的基本使用 先定义动画 在调用定义好的动画 语法格式(定义动画) /* keyframes: 关键帧 */ @keyframes 动画名称 { 0% { width: 100px; } 100% { width: 200px } } 语法格式(使用动画) div { /* 调用动画 */ animation-name: 动画名称; /* 持续时间 */ animati

Cocos2d-x之Action

|   版权声明:本文为博主原创文章,未经博主允许不得转载. 在Cocos2d-x中的Node对象可以有动作,特效和动画等动态特性.因此在Node类中定义了这些动态特性,因此精灵,标签,菜单,地图和粒子系统等都具有这些动态特性.在cocos2d-x中为了让游戏画面动起来,有两种方法,例如:位置.大小,旋转等等.另外:一种就是使用动作: cocos2d-x中提供了丰富的动作类,这些动作类分为动作包括:属性变化动作(如:缩放,旋转等),瞬时动作,持续性动作,变速运动,控制动作,视觉特效动作,复合动作