Cocos2d-x动作
- 一、动作由继承Node类的对象执行(Layer,Sprite,Label)
- 二、复合动作:
- 序列动作
- 并列动作:
- 逆动作(通常以by结尾的动作):
- 延时动作:
- 重复、无限重复动作:
- 变速动作(施加加速度):
- 1.EaseIn,EaseOut,EaseInOut(降低速度):
- 2.EaesSineIn,EaseSineOut,EaseSineInOut(与加速比率为1.5的Ease动作类似):
- 3.EaseExponentialIn,EaseExponentialOut,EaseExponentialInOut(与加速比率为6.5的Ease动作类似):
- 4.EaseElasticIn,EaseElasticOut,EaseElasticInOut(橡皮筋弹跳):
- 5.EaseBackIn,EaseBackOut,EaseBackInOut(回力效果):
- 6.EaseBounceIn,EaseBounceOut,EaseBounceInOut(皮球弹跳):
- 7.CallFunction动作:调用方法
一、动作由继承Node类的对象执行(Layer,Sprite,Label)
MoveBy(移动坐标):
auto action = MoveBy::create(时间,Vec2());
sqr->runAction(action);
MoveTo(移动到):
auto action = MoveTo::create(时间,Vec2());
sqr->runAction(action);
JumpBy(跳跃坐标):贝塞尔曲线
&auto action = JumpBy::create(时间,Vec2(),高度,次数);
sqr->runAction(action);
JumpTo(跳跃到坐标):贝塞尔曲线
auto action = JumpTo::create(时间,Vec2(),高度,次数);
sqr->runAction(action);
BezierBy,BezierTo:贝塞尔曲线
ccBezierConfig bc;//声明结构体
bc.controlPoint1 = Vec2();//第一个控制点坐标
bc.controlPoint2 = Vec2();//第二个控制点坐标
bc.endPosition = Vec2();//终点坐标
auto action = BezierTo::create(时间,bc);
Place:
auto action = Place::create(Vec2());
ScaleBy(以当前对象为基准缩放),ScaleTo(将对象缩放到指定大小):
auto action = ScaleTo::create(时间,倍数);
RotateBy(根据角度旋转),RotateTo(最快旋转到达目标点):正负表示方向
auto action = RotateBy::create(时间,角度);
sqr->runAction(action);
Show=setVisible(true)
auto action = Show::create();
Hide=setVisible(false)
auto action = Hide::create();
ToggleVisibility改变可视性
auto action = ToggleVisibilty::create();
Blink指定时间将节点对象闪烁指定次数:
auto action = Blink::create(时间,次数);
FadeIn淡入:透明度从0到255
auto action = FadeIn::create(时间);
FadeOut淡出:透明度从255到0
auto action = FadeOut::create(时间);
FadeTo在指定时间把对象透明度变为指定值:
sqr->setOpacity(0-255);
auto action = FadeTo::create(时间,0-255);
TintBy,TintTo改变对象颜色:
auto action = TintTo::create(时间,RGB值);
二、复合动作:
序列动作
auto action = Sequence::create(action1,action2,NULL);
并列动作:
auto action = Spawn::create(action1,action2,NULL);
逆动作(通常以by结尾的动作):
auto action = action1->reverse();
延时动作:
auto action = DelayTime::create(时间);
重复、无限重复动作:
auto action = Repeat::create(action1,次数);
变速动作(施加加速度):
1.EaseIn,EaseOut,EaseInOut(降低速度):
auto action = EaseIn::create(action1,加速度比率);
2.EaesSineIn,EaseSineOut,EaseSineInOut(与加速比率为1.5的Ease动作类似):
auto action = EaseIn::create(action1);
3.EaseExponentialIn,EaseExponentialOut,EaseExponentialInOut(与加速比率为6.5的Ease动作类似):
auto action = EaseExponentialIn::create(action1);
4.EaseElasticIn,EaseElasticOut,EaseElasticInOut(橡皮筋弹跳):
auto action = EaseElasticIn::create(action1);
5.EaseBackIn,EaseBackOut,EaseBackInOut(回力效果):
auto action = EaseBackIn::create(action1);
6.EaseBounceIn,EaseBounceOut,EaseBounceInOut(皮球弹跳):
auto action = EaseBounceIn::create(action1);
7.CallFunction动作:调用方法
CallFunc不含参,CallFuncN含参
.h头文件:
void setCallFunc_0();
void setCallFunc_1(Ref *sender);
void setCallFunc_2(Ref *sender,void *d);
void setCallFunc_3(Ref *sender,Ref object);
.cpp文件:
auto action = CallFunc::create(CC_CALLBACK_0,(HelloWorld::setCallFunc_0,this));
auto action = CallFunc::create(CC_CALLBACK_1,(HelloWorld::setCallFunc_1,this));
auto action = CallFunc::create(CC_CALLBACK_1,(HelloWorld::setCallFunc_2,this,(void)“Cocos2d-x”));
auto action = CallFunc::create(CC_CALLBACK_1,(HelloWorld::setCallFunc_3,this,sqr_2));