• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Cocos2d-x 3.2 Lua示例 ActionTest(动作测试)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

https://blog.csdn.net/wwj_748/article/details/38272837

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动作可以被同时调用,并且最终的运动是几个单独运动的综合。


[javascript] view plain copy
  1. --------------------------------------  
  2. -- ActionMove  
  3. -- 动作移动  
  4. --------------------------------------  
  5. local function ActionMove()  
  6.   -- 创建层  
  7.   local layer = cc.Layer:create()  
  8.   -- 初始化层  
  9.   initWithLayer(layer)  
  10.     
  11.   centerSprites(3)  
  12.   -- MoveBy动作  
  13.   local actionBy = cc.MoveBy:create(2, cc.p(80, 80))  
  14.   -- MoveBy的逆反操作  
  15.   local actionByBack = actionBy:reverse()  
  16.   
  17.   --   
  18.   tamara:runAction(cc.MoveTo:create(2, cc.p(size.width - 40, size.height - 40)))  
  19.   grossini:runAction(cc.Sequence:create(actionBy, actionByBack))  
  20.   kathia:runAction(cc.MoveTo:create(1, cc.p(40, 40)))  
  21.   
  22.   Helper.subtitleLabel:setString("MoveTo / MoveBy")  
  23.   return layer  
  24. end  



ScaleTo:缩放动作

ScaleBy: 缩放动作,继承自ScaleTo,提供reverse方法

[javascript] view plain copy
  1. --------------------------------------  
  2. -- ActionScale  
  3. -- 动作缩放  
  4. --------------------------------------  
  5. local function ActionScale()  
  6.   local layer = cc.Layer:create()  
  7.   initWithLayer(layer)  
  8.   
  9.   centerSprites(3)  
  10.   
  11.   -- ScaleTo,第一个参数是缩放时间,第二个参数为缩放因子  
  12.   local actionTo = cc.ScaleTo:create(2.0, 0.5)  
  13.   -- ScaleBy, 第一个参数为缩放时间,第二、三个参数为缩放因子  
  14.   local actionBy = cc.ScaleBy:create(2.0, 1.0, 10.0)  
  15.   local actionBy2 = cc.ScaleBy:create(2.0, 5.0, 1.0)  
  16.   
  17.   -- 执行动作  
  18.   grossini:runAction(actionTo)  
  19.   -- 执行动作序列,先正常缩放,然后反执行相反操作  
  20.   tamara:runAction(cc.Sequence:create(actionBy, actionBy:reverse()))  
  21.   kathia:runAction(cc.Sequence:create(actionBy2, actionBy2:reverse()))  
  22.   
  23.   Helper.subtitleLabel:setString("ScaleTo / ScaleBy")  
  24.   return layer  
  25. end  



RotateBy类/RotateTo:旋转一个节点

[javascript] view plain copy
  1. --------------------------------------  
  2. -- ActionRotate  
  3. -- 动作旋转  
  4. --------------------------------------  
  5. local function ActionRotate()  
  6.   local layer = cc.Layer:create()  
  7.   initWithLayer(layer)  
  8.   
  9.   centerSprites(3)  
  10.   
  11.   -- RotateTo,第一个参数为持续时间,第二个参数为旋转角度  
  12.   local actionTo = cc.RotateTo:create( 2, 45)  
  13.   local actionTo2 = cc.RotateTo:create( 2, -45)  
  14.   local actionTo0 = cc.RotateTo:create(2 , 0)  
  15.   -- 执行动作序列,先选择45度之后,  
  16.   tamara:runAction(cc.Sequence:create(actionTo, actionTo0))  
  17.   
  18.   -- RotateBy,持续时间为2秒,旋转360度  
  19.   local actionBy = cc.RotateBy:create(2 , 360)  
  20.   local actionByBack = actionBy:reverse() -- 相反操作  
  21.   grossini:runAction(cc.Sequence:create(actionBy, actionByBack))  
  22.   
  23.   local action0Retain = cc.RotateTo:create(2 , 0)  
  24.   
  25.   kathia:runAction(cc.Sequence:create(actionTo2, action0Retain))  
  26.   
  27.   Helper.subtitleLabel:setString("RotateTo / RotateBy")  
  28.   return layer  
  29. end  



SkewTo:通过修改节点对象的skewX和skewY属性来使节点对象倾斜到一个给定的角度。

SkewBy:通过skewX和skewY的度数来使节点对象倾斜。




[javascript] view plain copy
  1. --------------------------------------  
  2. -- ActionSkew  
  3. -- 斜歪动作  
  4. --------------------------------------  
  5. local function ActionSkew()  
  6.   local layer = cc.Layer:create()  
  7.   initWithLayer(layer)  
  8.   
  9.   centerSprites(3)  
  10.   -- SkewTo,第一个参数是持续时间,第二个参数是X轴倾斜的角度,第三个是Y轴的倾斜角度  
  11.   local actionTo = cc.SkewTo:create(2, 37.2, -37.2)  
  12.   local actionToBack = cc.SkewTo:create(2, 0, 0)-- 返回的一个动作  
  13.   local actionBy = cc.SkewBy:create(2, 0.0, -90.0)  
  14.   local actionBy2 = cc.SkewBy:create(2, 45.0, 45.0)  
  15.   local actionByBack = actionBy:reverse()  
  16.   
  17.   -- 三个精灵执行动作序列  
  18.   tamara:runAction(cc.Sequence:create(actionTo, actionToBack))  
  19.   grossini:runAction(cc.Sequence:create(actionBy, actionByBack))  
  20.   kathia:runAction(cc.Sequence:create(actionBy2, actionBy2:reverse()))  
  21.   
  22.   Helper.subtitleLabel:setString("SkewTo / SkewBy")  
  23.   return layer  
  24. end  



[javascript] view plain copy
  1. --ActionRotationalSkewVSStandardSkew  
  2. --轮转的倾斜动作和标准的倾斜动作  
  3. local function ActionRotationalSkewVSStandardSkew()  
  4.   
  5.   local layer = cc.Layer:create()  
  6.   initWithLayer(layer)  
  7.   
  8.   -- 从父节点中删除一个节点,有一个cleanup参数。 如果这个节点是一个孤节点,那么什么都不会发生。  
  9.   tamara:removeFromParent(true);  
  10.   grossini:removeFromParent(true);  
  11.   kathia:removeFromParent(true);  
  12.     

  13. 鲜花

    握手

    雷人

    路过

    鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
【转贴】Lua 程序设计初步发布时间:2022-07-22
下一篇:
Lua中的面向对象编程详解发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap