[cocos2d-x] --- CCAction类详解

本文详细介绍了Cocos2d-x中的动作系统,包括CCAction的基础概念及其实现不同动作的方式。重点讲解了CCFiniteTimeAction类及其子类的功能与应用,如移动、缩放、旋转等常见动画效果的实现。
摘要由CSDN通过智能技术生成

Cocos2d-x学习交流群:140326755 

Email : hahayacoder@gmail.com

 

1 在一个游戏中有了人物、白云等精灵,但是游戏中精灵静止不动肯定是不行的,要让它们执行一些动作,使精灵有丰富的动画效果,这样就会使用到CCAction类。CCAction主要用于人物角色等发生动作时使用,如紧身肉搏、远程射击和贴近对话等

 

2 cocos2d-x中,CCAction的类结构图如下

 

3 从上面的类结构图可以看出,动作的基类是CCAction,通过继承它可以实现很多不同的动作,主要分为三大类:CCFiniteTimeAction(有限次动作执行类)CCSpeed(节点执行速度类)CCFollow(节点跟随另一个节点移动)

 

4 在实际中,主要用到的是CCFiniteTimeAction类,所以下面详细介绍这个类。

 

5 CCFiniteTimeAction分为CCActionInstant(瞬时动作)CCActionInterval(延迟动作)。其中CCActionInstant动作没有执行过程,动作瞬时完成,而CCActionInterval动作执行需要一定的时间(或者一个过程)

 

6 在实际中,为了制作出炫丽的动画效果,使用得多的是CCActionInterval延时动作,下面开始介绍延迟动作

 

7 在上面的类结构图中,CCActionInterval的子类很多,简单介绍其中常用的,也可以通过cocos2d-x中自带的TestCpp例子来学习

(1) CCMoveTo / CCMoveBy 移动两者的主要差别在于CCMoveTo是移动到指定坐标,CCMoveBy是相对坐标。例如CCMoveTo(2.0f, ccp(50, 50))是在2s时间内移动到点x = 50y = 50处,而CCMoveBy(2.0f, ccp(50, 50))表示2s时间内向x方向移动50个单位,向y方向移动50个单位

(2) CCScaleTo / CCScaleBy 缩放

(3) CCRotateTo / CCRotateBy 旋转

(4) CCSkewTo / CCSkewBy 扭曲

(5) CCJumpTo / CCJumpBy 跳跃

(6) CCBezierTo / CCBezierBy 贝塞尔曲线

(7) CCBink 闪烁

(8) CCFadeIn / CCFadeOut 淡入淡出

(9) CCTintTo / CCTintBy 染色

 

8 动作的一个简单用法

CCSprite *heroSprite = CCSprite::create(“hero.png”);

CCMoveTo *move = CCMoveTo::create(2.0f, ccp(50, 50));

heroSprite->runAction(move);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值