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

我的Cocos2d-x学习笔记(十六)动作,第1张

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

@H_301_2@一、简介:

继续引用高级开发教程:

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


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

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

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

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

@H_301_2@二、瞬时动作

瞬时动作指立刻完成的动作,是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。

@H_301_2@二、持续性动作

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

每一种持续性动作通常存在两个不同的变种动作,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:使一个动作不断重复。

@H_301_2@三、复合动作

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

1、CCRepeat和CCRepeatForver:

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

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

2、CCSpawn:

使一批动作同时执行。

3、CCSequence:

让动作顺序执行。

3、CCDelayTime:

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

@H_301_2@四、变速动作

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

1、CCSpeed:

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

2、CCActionEase:

自定义速度变化。

3、CCFollow

跟随。

总结

以上是内存溢出为你收集整理的我的Cocos2d-x学习笔记(十六)动作全部内容,希望文章能够帮你解决我的Cocos2d-x学习笔记(十六)动作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1059659.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存