cocos2d-x学习之行走动作
来源:互联网 发布:java http接口开发 编辑:程序博客网 时间:2024/05/22 10:51
很多游戏中都有各种精灵行走的动作,像RPG类的和动作类的游戏就经常见到主角行走的动作。现在我们来看看它们是怎样实现人物行走。
学习这个之前,你首先要对cocos2d-x动作类有一个基础的认识。不知道的童鞋就先去学习一下相关知识吧.
好了,如果你了解过cocos2d-x动作类的话,接下来就可以跟着我完成一个人物行走的的实现。
首先人物行走肯定是从一个地方移动到一个地方 那我们就要用到CCMoveBy类来实现人物的移动,
其次,人物在行走的时候是有动作的,脚的摆动,手的摆动等。这样我们就需要创建一个动画。
根据这两点,我们来实现人物行走:
(1)人物移动:
(2)行走动画:
根据单张图片来创建动画:
学习这个之前,你首先要对cocos2d-x动作类有一个基础的认识。不知道的童鞋就先去学习一下相关知识吧.
好了,如果你了解过cocos2d-x动作类的话,接下来就可以跟着我完成一个人物行走的的实现。
首先人物行走肯定是从一个地方移动到一个地方 那我们就要用到CCMoveBy类来实现人物的移动,
其次,人物在行走的时候是有动作的,脚的摆动,手的摆动等。这样我们就需要创建一个动画。
根据这两点,我们来实现人物行走:
(1)人物移动:
CCPoint moveByPosition; switch(moveDirection) //根据moveDirection的值来选择上下左右 { case up: moveByPosition = ccp(0,10);break; case down: moveByPosition = ccp(0,-10);break; case left: moveByPosition = ccp(-10,0);break; case right: moveByPosition = ccp(10,0);break; default: moveByPosition = ccp(0,0); break; } CCMoveBy *moveBy = CCMoveBy::create(0.3f,moveByPosition);//创建移动动作
(2)行走动画:
创建动画可以用纹理图片来创建,也可以用单独的图片来创建。
纹理图片创建:
//将图片生成纹理,保存到全局的纹理缓存取 CCTexture2D *heroTexture=CCTextureCache::sharedTextureCache()->addImage("hero.png"); //用纹理创建4幅帧动画,第二个参数表示纹理图片区域的x,y,width,height,根据direction的不同分别为向上、下、左、右移动的动画 CCSpriteFrame *frame0,*frame1,*frame2,*frame3; frame0=CCSpriteFrame::createWithTexture(heroTexture,cocos2d::CCRectMake(Rect*0,Rect*direction,Rect,Rect)); frame1=CCSpriteFrame::createWithTexture(heroTexture,cocos2d::CCRectMake(Rect*1,Rect*direction,Rect,Rect)); frame2=CCSpriteFrame::createWithTexture(heroTexture,cocos2d::CCRectMake(Rect*2,Rect*direction,Rect,Rect)); frame3=CCSpriteFrame::createWithTexture(heroTexture,cocos2d::CCRectMake(Rect*3,Rect*direction,Rect,Rect)); CCArray *animFrames=CCArray::create(); animFrames->addObject(frame0); animFrames->addObject(frame1); animFrames->addObject(frame2); animFrames->addObject(frame3); //根据4幅帧生成CCAnimation对象 CCAnimation *animation=CCAnimation::createWithSpriteFrames(animFrames);
根据单张图片来创建动画:
/***************************************************************************** CCAnimation *animation = CCAnimation::create(); //根据direction的不同分别为向上、下、左、右移动的动画 string Image1 = direction+"player1.png"; string Image2 = direction+"player1.png"; string Image3 = direction+"player1.png"; string Image4 = direction+"player1.png"; animation->addSpriteFrameWithFileName(Image1.c_str()); animation->addSpriteFrameWithFileName(Image2.c_str()); animation->addSpriteFrameWithFileName(Image3.c_str()); animation->addSpriteFrameWithFileName(Image4.c_str()); //设置动画播放的属性,每一帧的时间0.3f animation->setDelayPerUnit(0.3f); animation->setRestoreOriginalFrame(true);***********************************************************************************/
根据移动和行走动画来创建动画动作:
CCAction *action = CCSequence::create( CCSpawn::create( //两个动作同步进行 CCAnimate::create(animation), moveBy, NULL ), // function //CCCallFuncN,CCCallFunc,CCCallFuncND创建函数调用 NULL ); //最后,让hero精灵执行这个动作hero->runAction(action);
这样人物行走的动作功能就实现了。如果开发者还想在精灵完成动作后执行某些功能,可以用
CCCallFuncN,CCCallFunc,CCCallFuncND创建函数调用放在最后。这样等精力完成动作后就会
自动调用创建的函数实现某些功能了
0 0
- cocos2d-x学习之行走动作
- Cocos2d-x 动作之瞬时动作
- Cocos2d-x 动作之变速动作
- Cocos2d-x 动作之创建自定义动作
- Cocos2d-x动作学习笔记
- Cocos2d-x 之复合动作
- Cocos2d-x之动作类
- Cocos2d-x之动作Action
- Cocos2d-x 之动作 Action
- cocos2d-X学习之主要类介绍:动作:CCAction
- (转载)cocos2d-X学习之主要类介绍:动作:CCAction
- (转)cocos2d-X学习之主要类介绍:动作:CCAction
- 9秒学院Cocos2d-X学习之动作特效介绍
- cocos2d-x 3.x之动作
- cocos2d-x 3.x之动作
- 【Cocos2d-X开发学习笔记】第15期:动作类之摄像机动作和基本样条动作的使用
- 【Cocos2d-X开发学习笔记】第16期:动作类之缓冲动作和组合动作的使用
- Cocos2d-x学习笔记(3) - 动作
- dojo 资源收集
- js radio checkbox onchange事件在IE与FF的处理
- Ubuntu MySQL数据库导入导出详解
- Windows phone 7之生命周期
- 正则表达式相关
- cocos2d-x学习之行走动作
- ZigZag Conversion
- JQuery开发之Galleriffic图片插件介绍
- C++ 关键字 extern
- Unable to convert MySQL date/time value to System.DateTime
- 汇编语言中的call
- String to Integer (atoi)
- 关于C++写C接口
- 线程与同步之二——互斥量