当前位置:编程学习 > wap >>

Cocos2d-x学习笔记(3) - 动作

对于一个游戏来说,动作是非常重要的,好的动作可以使游戏的可玩性大大提高,在cocos2d-x引擎中有一个动作类,CCAction是动作类的基类,动作是定义在节点(CCNode)上的,以节点为目标,主要分为两类瞬时动作和延时动作,
 一个动作的实现主要有以下几个步骤,下面我以山寨水果忍者中涉及到的函数为例吧。。。
1.创建一个节点

 这里是创建水果的函数,Fruit是我自定义的一个类,我创建一个随机的水果,设置水果的位置,其他的代码暂时不用理解。www.zzzyk.com
2.定义动作

 我为水果定义了两种曲线运动方式,都是在-x中很常用的,一个CCJumpTo,另一个是CCBezierTo就是贝塞尔曲线,另一个CCRotateTo就是让节点旋转,贝塞尔曲线的使用比较重要,可以查一下相关的资料掌握一下。
3.动作的执行

 一般情况下你会有几个动作需要执行,那么很重要的就是控制好动作的执行顺序,是同时执行还是一个一个接着的执行,用CCFiniteTimeAction来定义在给定时间内需要执行完的动作,用CCSequence动作序列来放置需要执行的动作,刚开始比较难控制动作的执行顺序
(1)如果采用这种方式执行动作,动作是同时执行的,这里的actions和cocos2d中的很相近。

(2)如果采用这种方式执行动作,动作是按照序列的顺序执行,CCDelayTime是延迟时间的函数。

 通常游戏在调用动作之后会进行相关的操作(消息机制),例如导航到其它的页面或者调用相关的回调函数,这是你可以再CCFiniteTimeAciton中定义,如何把它添加到动作队列中,这样就可以再完成动作之后执行,例如

 这里我是用CCCallFuncN来定义一个动作调用removefruit这个回调函数,CCCallFuncN是针对一个节点设计的,“N”就是Node的意思,如果不是针对节点就可以用CCCallFunc来定义,它还提供了一个很方便的接口,就是reverse,来执行动作的反动作,你可以通过actionMoveDown->reverse()来使用。
作者:John_cdy

补充:移动开发 , 其他 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,