cocos2dx_lua ActionsTest 学习及笔记

来源:互联网 发布:yy视频下载软件 编辑:程序博客网 时间:2024/05/22 15:12
--------------------------------------
-- ActionMove
--------------------------------------

CCMoveBy 时间 和 距离

CCMoveTo 时间 和 目的地

--------------------------------------
-- ActionScale
--------------------------------------

CCScaleTo:create(2.0, 0.5)   

CCScaleBy:create(2.0, 1.0, 10.0)

时间 比例 单参数 指整体 双参数指x,y方向,To基于原始, By基于当前,适用于大部分的Actions类的方法,不累述。 

--------------------------------------
-- ActionRotate
--------------------------------------
旋转
CCRotateTo:

CCRotateBy; 时间 角度

CCSequence:createWithTwoActions(actionTo2, action0Retain):两个有序动作

--------------------------------------
-- ActionSkew

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

倾斜

CCSkewTo:

CCSkewBy:时间 ,x,y方向角度

--------------------------------------
-- ActionSkewRotate
--------------------------------------

    box:runAction(CCSequence:createWithTwoActions(actionTo, actionToBack))
    box:runAction(CCSequence:createWithTwoActions(rotateTo, rotateToBack))
    box:runAction(CCSequence:createWithTwoActions(actionScaleTo, actionScaleToBack))

连续添加,同时发生动作

--------------------------------------
-- ActionJump

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

跳跃:

CCJumpTo:

CCJumpBy:时间,目的地或距离,高度,次数

 
--------------------------------------
-- ActionCardinalSpline
--------------------------------------
local function drawCardinalSpline(array)
kmGLPushMatrix()
kmGLTranslatef(50, 50, 0)
ccDrawCardinalSpline(array, 0, 100)
kmGLPopMatrix()
end

画曲线的,在player和vs都没画出来 ,不解中



local array = CCPointArray:create(20)
array:addControlPoint(ccp(0, 0))
array:addControlPoint(ccp(size.width / 2 - 30, 0))
。。。。。。。

local action = CCCardinalSplineBy:create(3, array, 0)
local reverse = action:reverse()
local seq = CCSequence:createWithTwoActions(action, reverse)

CCCardinalSplineBy : 时间 ,坐标数组 ,张力 



后续 



笔记:

1.lua对于函数调用的参量数目自动调整(删减或补nil) 在调用c++函数的时候不适用,此时会重载函数的机制发挥作用。
2.skew 倾斜
3.spline 曲线
4.cardinalspline 一种图形学的曲线,样条曲线
5.ActionCardinalspline 例子画不出曲线
6.blink 闪烁
7.fade 褪色,淡出淡入
8.tint 染色
9.ActionAnimate 的例子plist和tolua的使用略过了
10.
    local move_tamara = CCMoveBy:create(1, ccp(100,0))
    local move_tamara2 = CCMoveBy:create(1, ccp(50,0))
    local hide = CCHide:create()
local array2 = CCArray:createWithCapacity(10)
array2:addObject(move_tamara)
array2:addObject(hide)
array2:addObject(move_tamara2)

array2:addObject(move_tamara2)
array2:addObject(hide)
array2:addObject(move_tamara)
    local seq_tamara = CCSequence:create(array2)
    local seq_back = seq_tamara:reverse()
   -- tamara:runAction(CCSequence:createWithTwoActions(seq_tamara, seq_back))
tamara:runAction(seq_tamara)


CCHide 只是影藏,再次调用不会反向显示
而CCToggleVisibility则会,所以以上move_tamara就一直影藏了


而采用reverse()去反操作会把CCHide的也反显示出来,也就是reverse不是针对序列的,是针对操作的。如下


    local move_tamara = CCMoveBy:create(1, ccp(100,0))
    local move_tamara2 = CCMoveBy:create(1, ccp(50,0))
    local hide = CCHide:create()
local array2 = CCArray:createWithCapacity(10)
array2:addObject(move_tamara)
array2:addObject(hide)
array2:addObject(move_tamara2)
    local seq_tamara = CCSequence:create(array2)
    local seq_back = seq_tamara:reverse()
    tamara:runAction(CCSequence:createWithTwoActions(seq_tamara, seq_back))


tamara 会再次显示出来


11.orbit 盘旋
12.CCFollow: 第二个参数 是矩阵 表示layer移动的局限范围
其实我理解不是layer移动,是layer的可视区域移动,能接受就行,没什么所谓的,纠结的是CCRect的第3,4个参数竟然是矩阵的宽度和长度,我以为是矩阵右上角点,调了1个多钟啊。


13.cocos2dx
这个引擎没把程序流程给开发者,基本是基于消息触发(包括事件,时间触发器)的,没有gameloop好写了,当然,我是个菜鸟 所以无敌 喷也没用


0 0