加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

我的Cocos2d-x学习笔记(十六)动作

发布时间:2020-12-14 21:25:31 所属栏目:百科 来源:网络整理
导读:一、简介: 继续引用高级开发教程: CCAction 作为一个基类,其实质是一个接口(即抽象类),由它派生的实现类(如运动和转动等)才是我们实际使用的动作。CCAction 的绝大多数实现类都派生自CCFiniteTimeAction,这个类定义了在有限时间内可以完成的动作。

一、简介:

继续引用高级开发教程:

CCAction 作为一个基类,其实质是一个接口(即抽象类),由它派生的实现类(如运动和转动等)才是我们实际使用的动作。CCAction 的绝大多数实现类都派生自CCFiniteTimeAction,这个类定义了在有限时间内可以完成的动作。由CCFiniteTimeAction 派生出的两个主要类分别是瞬时动作(CCActionInstant)和持续性动作(CCActionInterval)。


动作作用于CCNode,任何一个动作都需要由CCNode对象执行。

一个CCAction只能使用一次,对于需要反复使用的动作对象,可以通过copy方法复制使用。

CCFiniteTimeAction定义了reverse方法,通过这个方法可以获得一个与原动作相反的动作。

设置属性为常量的动作不存在逆动作,设置属性为相对值的动作存在逆动作。

二、瞬时动作

瞬时动作指立刻完成的动作,是CCFiniteTimeAction 中持续时间为0的特例。

瞬时动作在下一帧会立刻执行并完成,为了方便与其他动作类组合为复杂动作。

1、CCPlace

该动作作用于将节点放置到某个指定位置,其作用与修改节点的Position属性相同。

实例:

	CCPlace* place = CCPlace::create(ccp(100,100));
	CCSprite* spr = CCSprite::create("p_2_01.png");
	spr->setPosition(ccp(240,160));
	spr->runAction(place);
	addChild(spr);
2、CCFlipX和CCFlipY

这两个动作分别用于将精灵沿X和Y轴反向显示,其作用与设置精灵的FlipX和FlipY属性相同。

3、CCShow和CCHide

这两个动作分别用于显示和隐藏节点,其作用与设置节点的Visible属性的作用一样。

4、CCCallFunc

CCCallFunc系列动作包括:CCCallFunc、CCCallFuncN、CCCallFuncND、CCCallFuncO。

用来在动作中进行方法调用。

CCCallFunc:调用的方法不包含参数,callfunc_selector。

CCCallFuncN:包含一个CCNode* 类型的参数,callfuncN_selector。

CCCallFuncND:包含一个CCNode*类型的参数,和一个void*参数(自定义类型),callfuncND_selector。

CCCallFuncO:包含一个CCObject*类型的参数,callfuncO_selector。

二、持续性动作

持续性动作是在持续一段时间里逐渐完成的动作。

每一种持续性动作通常存在两个不同的变种动作,To后缀的动作描述了节点属性的绝对变化,By后缀的动作描述了属性值的相对变化。

持续性动作根据效果可以分为4类:位置变化动作、属性变化动作、视觉特效动作、控制动作。

(一)位置变化动作(3种)

1、CCMoveTo和CCMoveBy:

用于节点做直线运动。设置了动作时间和终点位置后,节点就会在规定时间内,从当前位置直线移动到设置的终点位置。

2、CCJumpTo和CCJumpBy

使节点以一定的轨迹跳跃到指定位置。

3、CCBezierTo和CCBezierBy

使节点进行曲线运动,运动的轨迹由贝塞尔曲线描述。

(二)属性变化动作

特点是通过属性值的逐渐变化实现动画效果。

1、CCScaleTo和CCScaleBy:

产生缩放效果。

2、CCRotateTo和CCRotateBy:

产生旋转效果。

3、CCFadeIn和CCFadeOut:

产生淡入淡出效果。

4、CCFadeTo:

一段时间内透明度的变化效果。

5、CCTintTo和CCTintBy:

设置色调变化。

(三)视觉特效动作

1、CCBlink:

使目标节点闪烁。

2、CCAnimation:

播放帧动画。

(四)控制动作

用于对一些动作进行精细控制。

CCDelayTime:将动作延时一定时间。

CCRepeat:把现有动作重复一定次数。

CCRepeatForever:使一个动作不断重复。

三、复合动作

作为容器,把许多动作组合成一个复杂的动作。

1、CCRepeat和CCRepeatForver:

CCRepeat:把现有动作重复一定次数。

CCRepeatForever:使一个动作不断重复。

2、CCSpawn:

使一批动作同时执行。

3、CCSequence:

让动作顺序执行。

3、CCDelayTime:

占用一段时间,使动作延时。

四、变速动作

它可以把任何动作按照改变后的速度执行。

1、CCSpeed:

用于线性地改变某个动作的速度。

2、CCActionEase:

自定义速度变化。

3、CCFollow

跟随。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读