
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方法。
代码示例:
local ActionTest = class("ActionTest", BaseView) function ActionTest:ctor()
self.root = cc.Layer:create()
self:addToUiGroup(self.root)
UITools.alignCenter(self.root)
end --------------------------------------
-- ActionSkewRotate
-- 歪斜+旋转+缩放+变色+闪烁
-- skew 和 rotate 的区别是一个是倾斜旋转, 一个是正常旋转
--------------------------------------
function ActionTest:ActionSkewRotate() -- 盒子大小
local boxSize = cc.size(200.0, 200.0)
-- 层颜色,第1、2、3分别为红绿篮颜色值,第4个为透明度值
local box = cc.LayerColor:create(cc.c4b(, , , ))
-- 设置锚点
box:setAnchorPoint(cc.p(, ))
-- 设置位置
box:setPosition(, )
-- 设置内容大小
box:setContentSize(boxSize) --标记大小
local markrside = 30.0
local uL = cc.LayerColor:create(cc.c4b(, , , ))
box:addChild(uL)
uL:setContentSize(cc.size(markrside, markrside))
uL:setPosition(, boxSize.height - markrside)
uL:setAnchorPoint(cc.p(, )) local uR = cc.LayerColor:create(cc.c4b(, , , ))
box:addChild(uR)
uR:setContentSize(cc.size(markrside, markrside))
uR:setPosition(boxSize.width - markrside, boxSize.height - markrside)
uR:setAnchorPoint(cc.p(, ))
self.root:addChild(box) -- 斜歪动作
local skewTo = cc.SkewTo:create(, , ) --旋转动作
local rotateTo = cc.RotateTo:create(, , ) --缩放动作
local actionScaleTo = cc.ScaleTo:create(, -0.44, 0.47) --变色动作
local tinkTo = cc.TintTo:create(, -, -, -) -- 闪烁运动
local blink = cc.Blink:create(,) -- OrbitCamera类 :action 视角按照球面坐标轨迹 围绕屏幕中心进行旋转
-- 创建一个带有起始半径、半径差、起始z角、旋转z角的差、起始x角、旋转x角的差 这些参数的运动视角动作类
-- local orbitTo = cc.OrbitCamera:create(2, 1, 0, 0, 180, 0, 0) local actionScaleToBack = cc.ScaleTo:create(, 1.0, 1.0)
local rotateToBack = cc.RotateTo:create(, )
local skewToBack = cc.SkewTo:create(, , )
local tinkBack = cc.TintTo:create(, , , ) local spawnTo = cc.Spawn:create(skewTo, rotateTo, actionScaleTo, tinkTo, blink)
local spawnBack = cc.Spawn:create(actionScaleToBack, rotateToBack, skewToBack, tinkBack)
local sequence = cc.Sequence:create(spawnTo, spawnBack)
box:runAction(cc.RepeatForever:create(sequence)) end return ActionTest