cocos2d中各種action方法的應用

2021-08-15 10:04:33 字數 4068 閱讀 6425

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角的差 這些引數的運動視角動作類

總結:***to移動到絕對位置, ***by移動乙個相對位置, 並且所有的***by動作都有對應的reverse方法。

**示例:

1

local actiontest = class("

actiontest

", baseview)23

function

actiontest:ctor()

4 self.root =cc.layer:create()

5self:addtouigroup(self.root)

6uitools.aligncenter(self.root)

7end89

--------------------------------------

10--

actionskewrotate

11--

歪斜+旋轉+縮放+變色+閃爍

12--

skew 和 rotate 的區別是乙個是傾斜旋轉, 乙個是正常旋轉

13--

------------------------------------

14function

actiontest:actionskewrotate()

1516

--盒子大小

17local boxsize = cc.size(200.0, 200.0)18

--層顏色,第1、2、3分別為紅綠籃顏色值,第4個為透明度值

19local 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

--設定內容大小

25box:setcontentsize(boxsize)

2627

--標記大小

28local markrside = 30.0

29local ul = cc.layercolor:create(cc.c4b(255, 0, 0, 255

))30

box:addchild(ul)

31ul:setcontentsize(cc.size(markrside, markrside))

32 ul:setposition(0, boxsize.height -markrside)

33 ul:setanchorpoint(cc.p(0, 0

))34

35local ur = cc.layercolor:create(cc.c4b(0, 0, 255, 255

))36

box:addchild(ur)

37ur: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)

4142

--斜歪動作

43local skewto = cc.skewto:create(2, 0, 10)44

45--

旋轉動作

46local rotateto = cc.rotateto:create(2, 61, 0)47

48--

縮放動作

49local actionscaleto = cc.scaleto:create(2, -0.44, 0.47)50

51--

變色動作

52local tinkto = cc.tintto:create(2, -127, -255, -127)53

54--

閃爍運動

55local 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)

6061

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

66local spawnto =cc.spawn:create(skewto, rotateto, actionscaleto, tinkto, blink)

67local spawnback =cc.spawn:create(actionscaletoback, rotatetoback, skewtoback, tinkback)

68local sequence =cc.sequence:create(spawnto, spawnback)

69box:runaction(cc.repeatforever:create(sequence))

7071

end72

73return actiontest

Cocos2d中各種座標位置關係

先看一段 cpp view plain copy id init return self 1 載入地圖 cpp view plain copy cctmxtiledmap gameworld cctmxtiledmap tiledmapwithtmxfile positiontext.tmx 2 獲...

Cocos2d中各種座標位置關係

接觸cocos2d有段時間了,今天特意研究了下cocos2d座標系中各種位置關係,anchor屬性,ccnode座標和地圖座標轉換。先看一段 id init return self 1 載入地圖 cctmxtiledmap gameworld cctmxtiledmap tiledmapwithtm...

cocos2d實現語音 Cocos2d 聲音API

param url 聲音路徑 cc.audioengine.playmusic url loop 停止背景 param releasedata 是否釋放聲音資料,預設為false cc.audioengine.stopmusic releasedata 暫停背景 cc.audioengine.pau...