cocos2dx进阶学习之CCAction
CCAction在cocos2dx中,抽象了节点的动作。它由CCObject派生,因此它不是渲染节点。
它经常的用法是,创建一个action,然后让某个CCNode对象(一般是精灵),去执行它。
在马里奥代码里,执行马里奥跳跃的代码如下:
//增加跳跃运动
CCJumpTo *pJump = CCJumpTo::create(_MARIO_BASIC_JUMP_TIME_,ccp(getPositionX(),getPositionY()-10.f),_MARIO_BASIC_JUMP_HEIGHT_,1);
if(pJump==NULL)
{
CCAssert(false,"Can't Create Jump!");
return;
}
//为Jump设置独立的Tag
pJump->setTag(enTagOfActionJump);
runAction(pJump);
CCJumpTo是CCAction的一个派生类,创建了jump这个动作后,由马里奥对象执行runAction,完成马里奥的跳跃。
在实际的工作中,往往使用的是CCAction的子类,CCAction有丰富的子类,来抽象各种动作,比如上面例子中的跳跃,还有移动,瞬间移动等。
具体的CCAction的派生类有以下:
CCFlipX和CCFlipY:水平翻转和竖直翻转
CCPlace:放置
CCHide和CCShow:隐藏和显示
CCToggleVisibility:可见开关,执行一次从可见到不可见,再执行一次就反过来
CCReuseGrid和CCStopGrid:使用和停止网格动作
CCCallFunc,CCCallFuncND,CCCallFuncN,CCCallFuncO:函数调用动作,执行这个动作只是执行一个函数
CCMoveBy,CCMoveTo,CCJumpBy,CCJumpTo,CCBezierBy,CCBezierTo:精灵移动动作
CCScaleBy,CCScaleTo:缩放动作
CCRotateBy,CCRotateTo:旋转动作
CCSkewTo,CCSkewBy:倾斜动作
CCFadeIn,CCFadeOut,CCFadeTo:淡化动作
CCTineBy,CCTineTo:颜色变化动作
CCBlink:闪烁动作
CCSequence:连续动作,连续动作通过几个action构造,执行这个序列时,实际执行的参数指定的那些动作
CCSpawn:同时动作,跟连续动作不同的时,参数指定的几个动作会同时执行
CCRepeat和CCRepeatForever:重复执行
CCEaseIn,CCEaseOut,CCEaseInOut:可变速度动作类
CCDelay:延迟动作类
CCFollow:跟随动作类
这里把所有的action都列出来,并没有详细展开讨论,大家可以写个代码去验证一下,各种action的乐趣
cocos2dx进阶学习之CCAction的更多相关文章
- cocos2dx进阶学习之场景切换
背景 在学习马里奥时,我们学习到从菜单场景到游戏场景的切换,代码如下 void CMMenuScene::OnStartCallBack( CCObject *pSender ) { CCDirect ...
- cocos2dx进阶学习之CCNode
继承关系 CCNode -> CCObject CCNode在cocos2dx中抽象舞台对象,需要渲染的对象都是从CCNode派生,包括CCScene,CCLayer,CCSprite等等 C ...
- cocos2dx进阶学习之CCScene
继承关系 CCScene -> CCNode -> CCObject CCScene抽象了一个场景的概念,类似舞台的一幕 函数 static CCScene *create(void); ...
- cocos2dx进阶学习之屏幕适配
背景 在学习cocos2dx时,我们在main函数中发现一句代码, #include "main.h" #include "AppDelegate.h" #in ...
- cocos2dx进阶学习之CCEGLView
继承关系 CCEGLView-> CCEGLViewProtocol CCEGLView是窗口,在不同平台上有不同的实现,而CCEGLViewProtocol是CCEGLView定义的接口,所以 ...
- cocos2dx进阶学习之瓦片地图编辑器
之前学习了瓦片地图类,现在我们来学习下瓦片地图制作工具 这个是开源的工具,可以从网上下载,下面我们演示下怎么做地图 步骤1 将需要用到的图片放到一个目录下,比如我机器上就是d:\tiled,这些图片是 ...
- cocos2dx进阶学习之CCTMXTiledMap
继承关系 CCTMXTiledMap -> CCNode 它由CCNode派生,我们已经知道CCNode是cocos2dx的舞台对象的公共父类,所以CCTMXTiledMap也是个舞台对象 成员 ...
- cocos2dx进阶学习之CCSprite
继承关系 CCSprite -> CCNodeRGBA -> CCNode, CCRGBAProtocol CCTextureProtocol 从继承关系可以看出,CCSp ...
- cocos2dx进阶学习之CCLayer
继承关系 CCLayer -> CCNode,CCTouchDelegate,CCAccelerometerDelegate,CCKeypadDelegate CCLayer在cocos2dx中 ...
随机推荐
- pv ticketlock解决虚拟环境下的spinlock问题
最近看邮件,有注意到pv ticketlock相关的消息,貌似jeremy 几年前的东东,终于将要被收录到linux 3.12里面. 先说下pv ticketlock这东西,http://blog.x ...
- SSO 基于Cookie+fliter实现单点登录(SSO):工作原理
SSO的概念: 单点登录SSO(Single Sign-On)是身份管理中的一部分. SSO的一种较为通俗的定义是:SSO是指訪问同一server不同应用中的受保护资源的同一用户,仅仅须要登录一次,即 ...
- Use Excel to write insert SqlScript
="insert into Process.dbo.TempHampInGoodStandingLoanList (Loan_No,ProgramType,ModificationEffec ...
- jQeury学习笔记
jQuery 语法: 核心语法: $(selector).action() 美元符号定义 jQuery 选择符(selector)"查询"和"查找" HTML ...
- asp.net 分页的制作
/// <summary> /// 数据分页方法 /// </summary> /// <param name="PageIndex">当前页& ...
- Maven+SpringMVC+MyBatis 上传图片
上传文件我一直都觉得很难,好吧,所有涉及文件操作的我都觉得不容易.然后今天尝试了从网页上传图片保存到服务器.这个例子的前提是搭建好了服务器端框架:Maven+Spring MVC+MyBatis.当然 ...
- linux定时任务crontab的设置
linux定时任务crontab的设置http://www.blogjava.net/freeman1984/archive/2010/09/23/332715.html vi /etc/cronta ...
- C语言实现约瑟夫环讨论
[问题描述] 约瑟夫(Joseph)问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数).一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针 ...
- MyEclipse 怎样手动编译整个项目
去掉自动编译的对勾,项目上就有build project,在菜单project->>build automatically. MyEclipse 菜单 Project->Build ...
- Protel99se教程二:使用protel99se原理图绘制
使用protel99se绘制原理图,首先要先设置一下显示网格这一项,这个可以根据个人习惯,并不是一定需要这样的,在prote99se的界面的View菜下,将visible Grid选中或取消,可以选择 ...