cocos2dx学习笔记(三)——动作(CCAction)
来源:互联网 发布:mysql 数据删除操作 编辑:程序博客网 时间:2024/05/01 22:02
CCAction继承于对象类CCObject,它下面有三个子类:有限时间动作(CCFiniteTimeAction),跟随,移动速度。其中有限动作又分为瞬时动作(CCActionInstanse)和延时动作(CCActionInterval)。具体类结构图如下:
从上面的结构图可以看出,延时动作函数库比瞬时动作函数库更加丰富。延时动作相比于瞬时动作多了一个执行过程,需要一定的时间。
延时动作函数丰富,下面以CCMoveTo和CCMoveBy为例介绍一下动作的用法:
移动精灵,两者的区别在于:CCMoveBy是CCMoveTo的子类。CCMoveTo是移动到指定坐标,CCMoveBy是相对坐标。如ccp(50,50),前者表示移动到x=50,y=50处,后者表示向x方向移动50个单位,向y方向移动50个单位。
CCActionInterval* actionMoveTo = CCMoveTo::actionWithDuration(2,ccp(winSize.width - 30,winSize.height - 30) ); CCActionInterval* actionMoveBy = CCMoveBy::actionWithDuration(1,ccp(-50,-50) );m_Soldier1->runAction(actionMoveTo ); m_Soldier2->runAction( CCSequence::actions(actionMoveTo,actionMoveBy,NULL) );
CCSequence是动作序列,把若干个动作按顺序组合在一起,然后依次执行,NULL是结束标志。
函数回调动作
有时候一些动作完成后,需要执行一些数据处理。就需要使用函数回调动作CCCallFunc.根据传人参数不同,回调函数分为CCCallFunc (不含参数),CCCallFuncN (含有CCNode对象),CCCallFuncND (CCNode对象和数据)。
//创建一个CCCallFunc操作
//还要实现回调里的操作,看下面的回调函数funback1
CCCallFunc * back1=CCCallFunc::create(this,callfunc_selector(Actiondemo::funback1));
CCFiniteTimeAction * cq1=CCSequence::create(ac1,back1,NULL);
plan1->runAction(cq1);
//创建一个CCCallFuncN操作
CCCallFuncN * back2=CCCallFuncN::create(this,callfuncN_selector(Actiondemo::funback2));
CCFiniteTimeAction * cq2=CCSequence::create(ac1,back2,NULL);
plan1->runAction(cq2);
//创建一个CCCallFuncND操作
CCCallFuncND * back3=CCCallFuncND::create(this,callfuncND_selector(Actiondemo::funback3),(void *)10);
CCFiniteTimeAction * cq3=CCSequence::create(ac1,back3,NULL);
plan1->runAction(cq3);
void Actiondemo::funback1(){
CCSprite * sp=(CCSprite *)this->getChildByTag(500);
CCActionInterval * rote=CCRotateTo::create(5.0f,180);
sp->runAction(rote);
}
void Actiondemo::funback2(CCNode * node){
CCActionInterval * rote=CCRotateTo::create(5.0f,180);
node->runAction(rote);
}
void Actiondemo::funback3(CCNode * node,void * a){
int num=(int)a; //这里要引用下指针
CCActionInterval * rote=CCRotateTo::create(num,180);
node->runAction(rote);
}
- cocos2dx学习笔记(三)——动作(CCAction)
- 四、Cocos2dx之动作(CCAction)
- Cocos2d-x学习笔记(三)浅析动作类CCAction(2)
- cocos2d-x初探学习笔记(3)--动作(CCAction)
- cocos2d-x初探学习笔记(3)--动作(CCAction)
- cocos2d-x初探学习笔记(3)--动作(CCAction)
- cocos2d-x初探学习笔记(3)--动作(CCAction)
- [cocos2dx]抽象元素——CCAction动作类
- Cocos2d-x学习笔记(二)浅析动作类CCAction(1)
- Cocos2d-x学习笔记(四)浅析动作类CCAction(3)
- cocos2d-x学习笔记-CCAction(动作)
- cocos2d-x学习笔记-CCAction(动作)
- cocos2d-x学习笔记-CCAction(动作)
- cocos2d-x学习笔记-CCAction(动作)
- cocos2d-x CCAction动作学习笔记
- cocos2d-x学习笔记-CCAction(动作)
- cocos2d-x学习笔记-CCAction(动作)
- Cocos2dx技术(三)——cocos2dx基本概念(四)动作
- 解决html文件修改了jsp之后打不开的解决的办法
- 聊聊Service(一)
- jsp中的el表达式
- PAT:7-2. A+B和C (15)
- ASP.NET 2.0中母版页中引用文件路径的问题
- cocos2dx学习笔记(三)——动作(CCAction)
- struts2.3.16.3 配置
- 黑马程序员_JAVA基础-函数与循环
- PAT:7-3. 数素数 (20)
- OCP 1Z0 053 165
- 2014网易校招互联网产品笔试分享
- PAT:8-0. 查找整数(10)
- android 缓存管理与常用算法
- sgu 236 输出负环回路 367页