声  明


本教程仅用于初学cocos2dx同学使用,内容由本人(孤狼)学习过程中笔记编写,本教程使用cocos2dx版本为2.1.4。本教程内容可以自由转载,但必须同时附带本声明,或注明出处。

gl.paea.cn版权所有。

OK,欢迎回到“和屌丝一起学cocos2dx”系列教程,昨天发布了“Ation动作”教程之后,一个大大和我说,学的太慢了,要加快点,所以感到无地自容啊,以后要加快学习进度了,大家可要跟上哦。好了上节我们我们说的那些action动作你们都试验了没呢?除了最后三个回调函数有点饶人以外其他的都是直接调用的方式实现,还是挺好理解的。另外我给大家的口诀也要知道哦,虽然是我自己瞎诌的,但是对于记住这些action动作还是有一定用处的哦。好了,我们快点进入今天的教程吧,今天我们要说的是-基本动画制作。

【一】:为啥说这个

说这个的原因很简单,就是要大家了解一下基本动画的制作,我们不用做出效果,只要运行就OK,知道路往哪走就行了。其实这也是个探路课程吧。

【二】:步骤

1.我们需要图片,一个显示走路的图片

2.加载图片并让他动起来。

【三】:函数


fuck,上面说那么简单,我咋不会捏?没关系,我们一步一步来

以往我们对精灵Sprite都只是用图片来创建,然后设置位置,加载就结束了。但是今天就到了我们要对精灵重新认识的时候了。

1.创建方式:

[1]:CCSprite::create("文件名");

//用一个文件创建精灵

[2]:CCSprite::create("文件名","矩形区域");

//用一个文件的一个区域创建精灵

[3]:CCSprite::createWithSpriteFrameName("缓存中的文件名");

//利用缓存中的一帧创建精灵

[4]:CCSprite::createWithSpriteFrame("精灵对象");

//利用另外一帧生成精灵对象

2.函数:

setPosition("CCPoint类型");                //设置精灵坐标

setRotation("角度");                               //设置旋转角度

setScale("缩放大小");                           //设置缩放

setScaleX("缩放大小");                        //设置X轴缩放

setScaleY("缩放大小");                         //设置Y轴缩放

setFlipX("bool");                                    //开启X轴镜像

setFlipY("bool");                                     //开启Y轴镜像

setOpacity("透明度");                            //设置透明度[0,255]

setVisible("bool");                                  //是否可见

setAnchorPoint("CCPoint类型");         //设置锚点

setColor("ccColor3B颜色");                 //设置颜色

setTexture("CCTexture2D类型");        //设置贴图

3.加入缓存帧:

CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("plist文件");

【四】:示例

首先我们要来解决图片问题,我们有过RPG游戏经验的人都知道,人物的动作都是有多张图片轮流切换得来的,下面这张呢我们可以看到,就是一个人物的所有行走图片了。

(妹子有没有很正点

这里我们就准备了4张向右走的图片,我们分别保存为r1.png,r2.png,r3.png,r4.png。

但是如果我们创建一个人物向右走就要4张图,一个人物全部走动就要16张图,再加上他们其他动作,再加上各种妖怪!在加上各种大叔技能。天,我们是不是要准备几千张图啊,到时候怎么找啊。Oh my ladygaga。

这里能就要和大家说一个新东西-图片打包,我们把所有图片都弄到一张图上,然后让程序一次加载,我们在这张图上找到对应的图不就完了吗,哈哈,图片打包工具很多,这里我给大家推荐的是“红大大”他们开发的“红孩儿工具箱”。具体的介绍你们直接点击链接就能看到,我就不再多说。

我们用这个工具把我们要的图打包一下,得到2个文件。一个png图片还有一个plist文档,文档里面记录了每个图片的位置和名称,方便我们直接调用。

1.创建新项目Justgame

2.载入rw.png和rw.plist

Justgame.h


1.创建回调函数和一个数字变量

int num;

void myupdate(float tmd);

Justgame.cpp

1.初始化函数

//-new-//

CCSize mysize=CCDirector::sharedDirector()->getWinSize();

//把rw.plist加入缓存帧

CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("rw.plist");

//创建4个sprite精灵,分别使用4张图

CCSprite * sp1=CCSprite::createWithSpriteFrameName("r1.png");

CCSprite * sp2=CCSprite::createWithSpriteFrameName("r2.png");

CCSprite * sp3=CCSprite::createWithSpriteFrameName("r3.png");

CCSprite * sp4=CCSprite::createWithSpriteFrameName("r4.png");

CCPoint myccp=ccp(20,mysize.height/2);

sp1->setPosition(myccp);

sp2->setPosition(myccp);

sp3->setPosition(myccp);

sp4->setPosition(myccp);

this->addChild(sp1,1,0);

this->addChild(sp2,1,1);

this->addChild(sp3,1,2);

this->addChild(sp4,1,3);

sp1->setVisible(true);

sp2->setVisible(false);

sp3->setVisible(false);

sp4->setVisible(false);

//设置移动

sp1->runAction(CCMoveTo::create(15.0f,ccp(mysize.width-20,mysize.height/2)));

sp2->runAction(CCMoveTo::create(15.0f,ccp(mysize.width-20,mysize.height/2)));

sp3->runAction(CCMoveTo::create(15.0f,ccp(mysize.width-20,mysize.height/2)));

sp4->runAction(CCMoveTo::create(15.0f,ccp(mysize.width-20,mysize.height/2)));

//启动更新函数

schedule(schedule_selector(Justgame::myupdate),0.2f);

//-new-//

2.更新函数

void Justgame::myupdate(float tmd){

CCSize mysize=CCDirector::sharedDirector()->getWinSize();

CCArray * myarray=this->getChildren();

int j=myarray->count();

for(int i=1;i<j;i++){     //这里你知道我为啥从1开始吗?

CCSprite * sp=(CCSprite *)this->getChildByTag(i-1);

sp->setVisible(false);

}

num++;

if(num>=myarray->count()-1){

num=0;

}

CCSprite * spshow=(CCSprite *)this->getChildByTag(num);

spshow->setVisible(true);

}

好了来看看效果吧。妹子动起来。。。

转载于:https://www.cnblogs.com/Anzhongliu/p/6091981.html

cocos2dx-基本动画制作相关推荐

  1. cocos2dx骨骼动画Armature源码分析(一)

    <!DOCTYPE html> 源码分析一 cocos2dx骨骼动画Armature源码分析(一) cocos2dx中的骨骼动画使用起来比较方便,从编辑器(cocostudio或flash ...

  2. Cocos2d-x v3.6制作射箭游戏(二)

    原文 Cocos2d-x v3.6制作射箭游戏(二) 六 24, 2015by RENSHANin COCOS2D-X 上章我们创建并加载了游戏地图,接下来的两章我们将实现如下的效果. 在开始之前,先 ...

  3. Blender3.0动画制作入门学习教程 Learn Animation with Blender (2021)

    要求 下载并安装Blender.免费下载和免费用于任何目的. 描述 加入我的动画课程. 在本课程中,我将从头开始讲述在Blender中创建动画场景的过程. 从第一步到最终渲染.在这个课程中,我们将使用 ...

  4. Blender车辆绑定动画制作视频教程

    MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言:英语+中英文字幕(根据原英文字幕机译更准确) |时长:72节课(22小时9m) |大小解压后:22 GB ...

  5. Blender从头开始装配和动画制作低多边形风格的FPS手臂

    Rigging and Animating Low Poly FPS Arms in Blender MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言:英语 ...

  6. Maya人物角色行走动画制作视频教程

    Maya人物角色行走动画制作视频教程 Maya人物角色行走动画制作视频教程 持续时间2h 57m 包含项目文件 1920X1080 MP4 大小解压后:2.27G 标题:技能分享–在Maya制作专业行 ...

  7. ue4中面部动画制作视频教程 Facial Animation More In Unreal Engine 4

    ue4中面部动画制作视频教程 Facial Animation & More In Unreal Engine 4 时长4h 包含项目文件 1920X1080 MP4 大小解压后:5.75G ...

  8. Maya角色面部表情动画制作视频教程 Maya: Facial Rigging

    Maya角色面部表情动画制作视频教程 Maya: Facial Rigging Maya角色面部表情动画制作视频教程 Maya: Facial Rigging Maya角色面部表情动画制作视频教程 M ...

  9. fiash星空动画制作_三维动画制作的详细流程

    三维动画制作的详细流程: 随着互联网的发展,三维动画技术更新,三维动画制作技术在生活中运用十分广泛,我们经常在一些电视广告,影视电影中会看到一些三维特效,因为震撼的真实感很受大众喜欢.三维动画技术让视 ...

最新文章

  1. 在Docker应用场景下 如何使用新技术快速实现DevOps
  2. php和python哪个好-写后端 Python,nodejs和php哪个更好一些?
  3. 控制台输入与Math Random的基本使用
  4. FIFO and DMA
  5. 廖雪峰python2.7教程_Python 2.7教程
  6. 第三天 css核心属性
  7. 线程同步,线程不同步_重新同步多线程集成测试
  8. webgl 游戏_如何选择 WebGL 框架和引擎?
  9. 怎样进行大数据的入门级学习
  10. 【前端框架之Bootstrap 02】布局与导航
  11. artTemplate模板引擎的源码拜读
  12. [YOLO] libtorch-yolov3 代码下载
  13. 2016美国QCon思考:通过Quora和Spotify案例,直击数据处理背后的魅影
  14. 活动验证码/兑换码生成
  15. 【网络工程师必备】怎么使用route命令实现内外网切换
  16. mysql默认的锁_mysql默认是悲观锁还是乐观锁
  17. webview显示flv远程文件
  18. BZOJ4372: 烁烁的游戏(动态点分治)
  19. 设计模式深入学习---Decorator装饰模式(结构型模式)
  20. vue项目 - Mockjs 模拟后台接口数据

热门文章

  1. 观《达芬奇的人生密码》有感——艺工交叉的智慧
  2. ORACLE sql 高级查询
  3. P1463 [POI2001][HAOI2007]反素数 题解
  4. 网站增加百度收录最有效的方法!!!!!!
  5. “百度杯”CTF比赛 2017 二月场 wp
  6. 鸿蒙系统原创,华为鸿蒙系统.docx
  7. 关于浏览器部分JS失效原因
  8. 你知道怎么衡量硬件设备的算力吗?
  9. PHP的OpenSSL加密扩展学习(三):证书操作
  10. Taro小程序跨端开发入门实战