作者:男人还是闷骚点好 | 来源:互联网 | 2023-08-11 20:10
Cocos2d-x 3.2 Lua示例 ActionTest(动作测试)
2014年博文大赛,请投上您宝贵的一票:http://vote.blog.csdn.net/Article/Details?articleid=38272837
移动开发狂热者群: 299402133,欢迎广大开发者加入
Cocos2d-x官方真够给力的,3.1.1还没有熟悉完,3.2就出来,本篇博客继续介绍Cocos2d-x的Lua示例,关于3.2的例子变动不是很大,稍微介绍一下3.2的新特性吧:
3.2版本的新特性
* 新的3D动画节点Animation3D/Animate3D
* 支持fbx-conv工具生成Sprite3D支持的二进制格式
* 支持游戏手柄
* 支持快速瓦片地图
* 加入utils::cpatureScreen方法用于截屏
* Physics body支持缩放和旋转
* 加入Node::enumerateChildren 和 utils::findChildren方法,且支持C++ 11的正则表达式
* 加入Node::setNormalizedPosition方法, Node的位置像素会根据它的服节点的尺寸大小计算
想了解更多详细的内容,可以这个链接:http://cn.cocos2d-x.org/tutorial/show?id=1180
本篇博客继续介绍Lua的一个实例,这个实例基本上涵盖了Cocos2d-x的所有基本动作,在这个例子中Cocos2d-x Lua开发者可以了解到如何来使用这些动作。
小巫这里根据官网文档类给大家解析一遍,也顺便加深自己的印象:
注:笔者不把一大段代码贴出来,分段解释比较舒服一点
MoveBy:通过修改节点对象的位置属性来改变节点对象的x,y像素。 x,y的坐标是相对于这个对象的位置来说的。 几个MoveBy动作可以同时被调用,最终的运动是这几个单独运动的综合
MoveTo:移动节点对象到位置x,y。x,y是绝对坐标,通过修改它的位置属性来改变它们的值。 几个MoveTo动作可以被同时调用,并且最终的运动是几个单独运动的综合。
-- 用图片名称加一个精灵帧到动画中 animation:addSpriteFrameWithFile(name) end -- should last 2.8 seconds. And there are 14 frames. -- 在2.8秒内持续14帧 animation:setDelayPerUnit(2.8 / 14.0) -- 设置"当动画结束时,是否要存储这些原始帧",true为存储 animation:setRestoreOriginalFrame(true) -- 创建序列帧动画 local action = cc.Animate:create(animation) grossini:runAction(cc.Sequence:create(action, action:reverse())) -- 动画缓存单例类。 如何你想要保存动画,你需要使用这个缓存。 local cache = cc.AnimationCache:getInstance() -- 添加入一个动画到缓存,并以name作为标示 cache:addAnimations("animations/animations-2.plist") -- Returns 查找并返回名了name的动画。 如果找不到,返回NULL. local animation2 = cache:getAnimation("dance_1") -- 创建第二个序列帧动画 local action2 = cc.Animate:create(animation2) -- 执行动作序列 tamara:runAction(cc.Sequence:create(action2, action2:reverse())) -- 克隆一个动画 local animation3 = animation2:clone() -- 设置循环次数 animation3:setLoops(4) -- 创建一个序列帧动画 local action3 = cc.Animate:create(animation3) -- 执行动作 kathia:runAction(action3) Helper.titleLabel:setString("Animation") Helper.subtitleLabel:setString("Center: Manual animation. Border: using file format animation") return layer end