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-4參數代表顏色RGB

 

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM