Cocos Studio制作帧动画
2016-01-13 19:44
786 查看
使用Cocos Studio(v2.3.2)制作帧动画
已经新建了一个项目,并新建了一个Layer,在Layer上添加了3个Sprite:
Cn03_1初始X坐标 -80
Cn02_2初始X坐标 1040
在第120帧时,这2个Sprite移动到屏幕中央
开启“开始记录动画”,这样在改变节点属性时会自动记录关键帧,而不用手动添加帧。
点开Cn03_1选中坐标,并选中第120帧,将Cn03_1的X坐标改成433,可以看到自动添加了一个关键帧,但此时再选中第0帧,发现X坐标也变成了433,将第0帧的X坐标改为初始的-80,可以看到第0帧也添加了关键帧,而且在0到120帧之间出现了一条直线。
点击播放按钮就可以看到Cn03_1在第0到120帧时,从-80匀速移动到了433位置。选中第0帧,在右边出现了预设选项,可以对这个移动过程进行如EaseIn、EaseOut等修饰。
将Cn03_1在第120帧改成旋转720度,第0帧0度。
对于Cn02_2,第120帧X坐标527,旋转900度,第0帧X坐标1040,旋转0度。
Cn16_3,第0帧X坐标150,第120帧X坐标850。选中第0帧,选择一个非线性的修饰,可以看到在直线两端出现了箭头。
和线性的修饰有明显区别。
现在可以通过播放动画预览一下效果。
选中Cn02_2第120帧,直接在帧事件处添加一个帧事件名称“END”,可以看到在Cn02_2的下拉选项中出现了帧事件一项,并在120帧处自动添加了一个关键帧。
下面将此项目导出,在代码中的使用如下:
gotoFrameAndPlay( ) 第3个参数改为true则可循环播放。
运行效果:
已经新建了一个项目,并新建了一个Layer,在Layer上添加了3个Sprite:
Cn03_1初始X坐标 -80
Cn02_2初始X坐标 1040
在第120帧时,这2个Sprite移动到屏幕中央
开启“开始记录动画”,这样在改变节点属性时会自动记录关键帧,而不用手动添加帧。
点开Cn03_1选中坐标,并选中第120帧,将Cn03_1的X坐标改成433,可以看到自动添加了一个关键帧,但此时再选中第0帧,发现X坐标也变成了433,将第0帧的X坐标改为初始的-80,可以看到第0帧也添加了关键帧,而且在0到120帧之间出现了一条直线。
点击播放按钮就可以看到Cn03_1在第0到120帧时,从-80匀速移动到了433位置。选中第0帧,在右边出现了预设选项,可以对这个移动过程进行如EaseIn、EaseOut等修饰。
将Cn03_1在第120帧改成旋转720度,第0帧0度。
对于Cn02_2,第120帧X坐标527,旋转900度,第0帧X坐标1040,旋转0度。
Cn16_3,第0帧X坐标150,第120帧X坐标850。选中第0帧,选择一个非线性的修饰,可以看到在直线两端出现了箭头。
和线性的修饰有明显区别。
现在可以通过播放动画预览一下效果。
选中Cn02_2第120帧,直接在帧事件处添加一个帧事件名称“END”,可以看到在Cn02_2的下拉选项中出现了帧事件一项,并在120帧处自动添加了一个关键帧。
下面将此项目导出,在代码中的使用如下:
local MainScene = class("MainScene", cc.load("mvc").ViewBase) function MainScene:ctor() self:enableNodeEvents() self.root = cc.CSLoader:createNode('res/Layer.csb') end function MainScene:onEnter() local _size = cc.Director:getInstance():getWinSize() local sp=cc.Sprite:create('res/HelloWorld.png') self:addChild(sp) sp:setPosition(_size.width/2,_size.height/2) self:createUI() end function MainScene:createUI() local action = cc.CSLoader:createTimeline('res/Layer.csb') self.root:runAction(action) action:pause() action:clearFrameEventCallFunc() action:gotoFrameAndPlay(0,122,false) local function onFrameEvent( frame ) if frame==nil then return end local str = frame:getEvent() if str == 'END' then print("--5555--") end end action:setFrameEventCallFunc(onFrameEvent) self:addChild(self.root) end return MainScene
gotoFrameAndPlay( ) 第3个参数改为true则可循环播放。
运行效果:
相关文章推荐
- 集成友盟社会化分享
- Cocos2dx打包安卓配置环境
- 关于在cocos2dx中继承Sprite的分析与技巧
- Cocos2dx-Lua开发环境配置步骤
- cocos2dx虚拟摇杆cpp四方向
- cocos2d-x中使用JNI的调用JAVA方法
- cocos2dx的渲染机制
- cocos2dx的内存管理机制
- cocos的init函数
- cocos2d-x 卓上改变工程图标的步骤
- Spine的使用(With Cocos2d-x)
- Quick-Cocos2dx-- 资源热更新2
- cocos2dx的第一天
- (译)如何优化cocos2d程序的内存使用和程序大小:第二部分(完)
- (译)如何优化cocos2d程序的内存使用和程序大小:第一部分
- Cocos2d-x获取系统时间(暂时)
- cocos2dx 常见的49中动作详解
- cocos2dx--两个场景切换各函数调用顺序
- cocos2dx之lua项目开发中MVC框架的简单应用
- Cocos2D结合CoreGraphics实现RPG人物中空黑洞吸入效果