cocos2d中各种action方法的应用

Action示例

1、移动动作

cc.MoveBy:create(time, posX, posY)  在time时间内,相对当前位置基础上移动x,y个单位。

cc.MoveTo:create(time, posX, posY)  在time时间内,移动到cc.p(posX, posY)位置。

2、缩放动作

cc.ScaleBy:create(time, scaleX, scaleY) 在time时间内,相对当前大小缩放scale(scaleX, scaleY)个单位

cc.ScaleTo:create(time, scaleX, scaleY) 在time时间内,缩放到scale(scaleX, scaleY)大小

3 斜歪动作 (skew 和 rotate 的区别是一个是压缩倾斜旋转(形状会变), 一个是正常旋转(形状不变))
cc.SkewTo:create(time, angleX, angleY)  在time时间内,压缩倾斜至angleX, angleY角度 (形状会变)

cc.SkewBy:create(time, angleX, angleY)  在time时间内,相对当前角度压缩倾斜angleX, angleY角度(形状会变)

4、旋转动作

cc.RatoteTo:create(time, angleX, angleY)  在time时间内,旋转至angleX, angleY角度(形状不变)

cc.RatoteBy:create(time, angleX, angleY)  在time时间内,相对当前角度旋转angleX, angleY角度(形状不变)

5、变色动作
cc.TintTo:create(time, colorR, colorG, colorB)  --第一个参数代表时间, 第2个参数是r,代表红色,第3个参数是g,代表绿色,第4个参数是b,代表蓝色

6、 闪烁运动
cc.Blink:create(time,num)  -- 创建两个闪烁动作,第一个参数为持续时间,第二个参数为闪烁次数

7、球面旋转 OrbitCamera类 (action视角按照球面坐标轨迹 围绕屏幕中心进行旋转)

cc.OrbitCamera:create(2, 1, 0, 0, 180, 0, 0)   -- 创建一个带有起始半径、半径差、起始z角、旋转z角的差、起始x角、旋转x角的差 这些参数的运动视角动作类 


总结:xxxTo移动到绝对位置, xxxBy移动一个相对位置, 并且所有的xxxBy动作都有对应的reverse方法。

代码示例:

 1 local ActionTest = class("ActionTest", BaseView)
 2
 3 function ActionTest:ctor()
 4     self.root = cc.Layer:create()
 5     self:addToUiGroup(self.root)
 6     UITools.alignCenter(self.root)
 7 end
 8
 9 --------------------------------------
10 -- ActionSkewRotate
11 -- 歪斜+旋转+缩放+变色+闪烁
12 -- skew 和 rotate 的区别是一个是倾斜旋转, 一个是正常旋转
13 --------------------------------------
14 function ActionTest:ActionSkewRotate()
15
16     -- 盒子大小
17     local boxSize = cc.size(200.0, 200.0)
18     -- 层颜色,第1、2、3分别为红绿篮颜色值,第4个为透明度值
19     local box = cc.LayerColor:create(cc.c4b(255, 255, 0, 255))
20     -- 设置锚点
21     box:setAnchorPoint(cc.p(0, 0))
22     -- 设置位置
23     box:setPosition(0, 0)
24     -- 设置内容大小
25     box:setContentSize(boxSize)
26
27     --标记大小
28     local markrside = 30.0
29     local uL = cc.LayerColor:create(cc.c4b(255, 0, 0, 255))
30     box:addChild(uL)
31     uL:setContentSize(cc.size(markrside, markrside))
32     uL:setPosition(0, boxSize.height - markrside)
33     uL:setAnchorPoint(cc.p(0, 0))
34
35     local uR = cc.LayerColor:create(cc.c4b(0, 0, 255, 255))
36     box:addChild(uR)
37     uR:setContentSize(cc.size(markrside, markrside))
38     uR:setPosition(boxSize.width - markrside, boxSize.height - markrside)
39     uR:setAnchorPoint(cc.p(0, 0))
40     self.root:addChild(box)
41
42     -- 斜歪动作
43     local skewTo = cc.SkewTo:create(2, 0, 10)
44
45     --旋转动作
46     local rotateTo = cc.RotateTo:create(2, 61, 0)
47
48     --缩放动作
49     local actionScaleTo = cc.ScaleTo:create(2, -0.44, 0.47)
50
51     --变色动作
52     local tinkTo =  cc.TintTo:create(2, -127, -255, -127)
53
54     -- 闪烁运动
55     local blink = cc.Blink:create(2,5)
56
57     -- OrbitCamera类 :action 视角按照球面坐标轨迹 围绕屏幕中心进行旋转
58     -- 创建一个带有起始半径、半径差、起始z角、旋转z角的差、起始x角、旋转x角的差 这些参数的运动视角动作类
59     -- local orbitTo = cc.OrbitCamera:create(2, 1, 0, 0, 180, 0, 0)
60
61     local actionScaleToBack = cc.ScaleTo:create(2, 1.0, 1.0)
62     local rotateToBack = cc.RotateTo:create(2, 0)
63     local skewToBack = cc.SkewTo:create(2, 0, 0)
64     local tinkBack =  cc.TintTo:create(2, 255, 255, 0)
65
66     local spawnTo = cc.Spawn:create(skewTo, rotateTo, actionScaleTo, tinkTo, blink)
67     local spawnBack = cc.Spawn:create(actionScaleToBack, rotateToBack, skewToBack, tinkBack)
68     local sequence = cc.Sequence:create(spawnTo, spawnBack)
69     box:runAction(cc.RepeatForever:create(sequence))
70
71 end
72
73 return ActionTest
时间: 2024-10-28 20:37:14

cocos2d中各种action方法的应用的相关文章

控制器中的Action方法,接收浏览器传过来的参数,总共有几种?

1.根据配置文件中的URL规则 public ActionResult Delete(int id) //id参数就是根据路由里面的参数id来传过来的,这个action方法中的参数一定要和路由中的id参数一样,大小写无所谓 { } 2.Mdel(模型绑定)(一般是通过Post方式,来接收参数) <td><input type="text" name="s_Name" value="@Model.s_Name" /><

cocos2d中的action

1.action中的to是只能用一次,而by是可以一直使用. 2.reverse(),是反过来实现,而这个并不是所有的动作都存在的. //运动到一个指定的坐标点 //CCActionInterval * moveBy = CCMoveBy::create(5, Vec2(-sprite1->getPosition().x * 2 + Director::getInstance()->getVisibleSize().width, // 50)); //CCActionInterval * ac

Cocos2D中Action的进阶使用技巧(一)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 假设认为写的不好请多提意见,假设认为不错请多多支持点赞.谢谢! hopy ;) 大家对Cocos2d中动作的使用大概都非常清楚了,事实上本身action的概念也不复杂. 可是在某些情况下,一般的动作不能满足我们需求的时候,我们就必须使用更高级的Action方法来解决这个问题. 比方,串行化(不是序列化哦,这是两个全然不同的概念)不同Action的执行-有些童鞋可能会说非常easy,直接用CCActionSequence不就结了,可是等等我

理解Struts2的Action中的setter方法是怎么工作的

接触过webwork和Struts2的同行都应该知道, 提交表单的时候,只要Action中的属性有setter 方法,这些表单数据就可以正确赋值到Action中属性里:另外对于Spring配置文件中声明的bean,也可以在Action中声明setter 方法将其注入到Action实例中.那么现在要研究:这些是怎么工作的呢? (1)提交表单时的参数 在struts2-core-2.3.1.2.jar压缩包内的struts-default.xml配置文件中有这个配置:<interceptor nam

Struts2中使用execAndWait后,在 Action中调用getXXX()方法报告java.lang.NullPointerException异常的原因和解决方法

使用 Struts2 编写页面,遇到一个要长时间运行的接口,因此增加了一个execAndWait ,结果在 Action 中调用 getContext()的时候报告异常 1 ActionContext context = ActionContext.getContext(); 2 ServletContext servletContext = (ServletContext) context.get(ServletActionContext.SERVLET_CONTEXT); //抛空指针异常

strut2基于XML配置方式对Action中的指定方法校验

当校验文件取名为ActionClassName-validation.xml时,会对action中的所有方法进行校验 .如果你需要对action中的某个方法实施校验,那么,校验文件的取名为 ActionClassName-ActionName-validation.xml.其中ActionName为struts.xml 中的action名字. 例如:对UserAction中的add()方法进行校验,校验文件名应该为:UserAction-user_add-validation.xml. User

cocos2d 中使用jni C++ 调用 Java 方法

1.简单数据类型例子 假设我们Java中有这么一个open的静态方法,它没有参数,有一个int的返回值.怎么在C++中调用它呢? package cb.CbCCBLE; public class CbCCBLECentralManager { public static final String TAG = "CbCCBLECentralManager Android"; public static int open() { Log.d(TAG,"open"); r

cocos2d 中使用jni Java 调用 C++ 方法

1.首先是LoadLibrary cocos2d中的C++代码会编译成一个.so文件,放在安卓目录下的libs/armeabi 下,然后java会load进来,这步我们不用做了,因为cocos2d已经帮我们做好了. package cb.CbCCBLE; public class CbCCBLECentralManager { public static final String TAG = "CbCCBLECentralManager Android"; public native

MVC 在action方法中获取当前action的控制器名和action名

如何在某个action方法中获取它所在的控制器和action名称呢. string controllerName = Request.RequestContext.RouteData.Values["controller"].ToString();//获取控制器名 string actionName = Request.RequestContext.RouteData.Values["action"].ToString();//获取action名