Cocos2dx学习笔记7:精灵(Sprite)

Cocos2dx的Sprite由Texure,frame和animation组成,由openes负责渲染。在游戏里,精灵是一个重要的概念,游戏背景、NPC、人物、道具等。在cocos2d-x引擎中,只要是用图片展示的,基本上需要使用精灵类。

一、创建精灵常见的三种方法:

1、直接使用Sprite的create方法创建

auto sprite = Sprite::create("HelloWorld.png");//创建一个精灵

this->addChild(sprite, 0);//把精灵加到层里

2、使用纹理来创建精灵

auto sprite1 =Sprite::createWithTexture(TextureCache::getInstance()->addImage("HelloWorld.png"));

this->addChild(sprite1, 0);//把精灵加到层里

还有一种是使用精灵帧创建精灵,精力帧动画主要用来做动画效果用,也可以用来创建精灵。首先我们使用TexturePacker工具将我们用的素材就行打包,这里我们对Resources资源图片进行打包。

首先将需要打包的图片拖进软件里,然后在texture file位置选择需要输出的位置并填写输出的文件名,点击Publis按钮即可进行打包。打包完成后,会输出同名的plist文件png图片。

这里我们取名为cocosxuexi,输出目录为桌面,点击打包后,会在桌面生成文件。

把这2个文件放进我们的资源目录里面即可。这调用时候,我们首先要先加载pliste文件,然后才可以调用里面的HelloWorld.png文件,否则会出现找不到资源的错误。

3、使用精灵帧来创建精灵

auto pCache = SpriteFrameCache::sharedSpriteFrameCache();  //获得SpriteFrame的缓存

pCache->addSpriteFramesWithFile("cocosxuexi.plist");

auto sprite2=Sprite::createWithSpriteFrameName("HelloWorld.png");

this->addChild(sprite2, 0);//把精灵加到层里

三种方法创建的精灵,均使用HelloWorld.png图片创建。创建成功后就可以在游戏窗口显示了。

本文由闭眼就天黑整理编辑,转载请注明:http://www.byjth.com/biji/26.html | 闭眼就天黑专栏_原创技术博客

时间: 2025-01-07 02:14:41

Cocos2dx学习笔记7:精灵(Sprite)的相关文章

【Cocos2D-X 学习笔记】为精灵添加单点触控

由于Cocos2d-x处于新学的阶段,因此最近也无法进行系统地更新,只会选择一些典型的Demo贴上来,一来是与大家分享,而来也可以作为以后回顾时的参考. 今天介绍一下Cocos2d-x的触摸事件处理,了解Android开发的朋友们知道,Android里会用一个OnClickListener()进行事件监听,而在J2SE中也会有Event类实现专门的监听处理.在Cocos2d-x中,因为是游戏引擎,用户在玩游戏时总是要通过屏幕与游戏进行交互,可想而知触摸事件是主要处理的事件.这里主要讲一下如何为精

Cocos2dx学习笔记10:cocos2dx序列帧动画(1)

在cocos2dx里是不支持gif动画的,所以我们无法给精灵设置gif格式的图片.但是如果我们想实现动画效果呢?那么我们就要自己通过大量的静态图来组成播放成动画. 在cocos2dx里提供了序列帧动画的概念来实现这个功能,动画由帧组成,每一帧都是一个纹理,我们可以使用一个纹理序列来创建动画. 首先找一张动图的gif图,这里QQ群里最近动图的逗逼图太多,我就随便找了一张,把图片另存到桌面,打开ps软件,把图片拖进去,这样gif图会被拆分许多的图层.我们把图层一个一个图层的保存成png的静态图,命名

Cocos2d-x学习笔记—事件处理机制

Cocos2d-x学习笔记-事件处理机制 一:事件处理机制 一个事件由触发到完成响应,主要由以下三部分组成: 事件分发器EventDispatcher: 事件类型EventTouch.EventKeyboard等: 事件监听器EventListenerTouch.EventListenerKeyboard等. 在Cocos2d-x v3.x中,关于事件的东西,无非就是围绕上述的三个部分展开来的,掌握了上述的三个部分,也就掌握了Cocos2d-x v3.x中事件处理的精髓. (1)事件分发器: 事

【原】cocos2d-x开发笔记:获取Sprite上某一个点的透明度,制作不规则按钮

本篇文章主要讲一下怎么做一个不规则的按钮,比如如下图的八卦,点击绿色和点击红色部分,需要执行不同的事件 一般情况下,如果要检测某一个精灵是否被点中,做法如下 bool HelloWorld::ccTouchBegan(cocos2d::CCTouch* pTouch, cocos2d::CCEvent* pEvent) { CCSize sprSize = pSpr->getContentSize(); CCPoint point = pSpr->convertTouchToNodeSpace

Cocos2dx 学习笔记整理----在项目中使用图片(初)

cocos2dx有多种使用图片的方法,先来个最简单的:用CCSprite直接使用图片. 首先,进入到之前建立的项目,把你将要使用的图片放入到目录下的Resources文件夹里面.项目中以相对路径使用资源皆是以Resources文件夹为根目录参考的. 然后进入到HelloWorldScene.cpp的init方法的最后面加入以下代码: ? 1 2 3 CCSprite * sprite = CCSprite::create("bl_24.png"); sprite->setPosi

Cocos2d-x学习笔记(三)“万物之父”——CCNode

原创文章,转载请注明出处:http://blog.csdn.net/sfh366958228/article/details/38701767 通过前两份学习笔记,我们不难发现CCScene.CCLayer.CCSprite.CCAction等一系列元素都是CCNode的子类,但其实"万物之父"这个标题还是有点夸大,毕竟还有像CCDirector.CCCamera之类并不继承自CCNode的组件. 但是CCNode绝对是Cocos2d-x中举足轻重的一个核心,我们可以把它理解为节点.它

cocos2dx学习笔记(2)

昨天尝试了cocos2dx在win下的开发环境配置,并且运行了cocos的helloword程序,晚上想要尝试一下android开发环境配置,顺便学习cocos在eclipse下的JNI机制,按照cocoa中文论坛的android环境配置弄了NDK,并配置了环境变量,由于想要学习cocos的luabind机制(这个我们公司游戏的引擎用的很多,确实比较有兴趣),一切搞定不明就里的用eclipse导入了cocos3.0rc中的tests目录下的cpp-tests工程(这算android开发久了的毛病

Cocos2dx 学习笔记整理----场景切换

据说Cocos2dx场景切换的方法有32种:cocos2dx 常见的32种切换场景的动画 无需一一求证,只需要知道切换场景需要怎么做就行了. 作为导演CCDirector,切换场景的事情当然归它管了. 切换场景的接口如下: ? 1 CCDirector::sharedDirector()->replaceScene(cocos2d:CCScene * pScene); 所以,我们只要把需要切换的场景实例传进去就可以了. ? 1 2 CCScene * pScene = GameMain::sce

Cocos2dx 学习笔记整理----第一个项目

接上一节, 进入新建的项目下面的proj.win32下面,找到项目名.sln文件(我的是game001.sln),双击会通过VS2010打开.(当然,你装了VS什么版本就是什么版本) 将你的项目设为启动项目, 切换到解决方案视图, 然后邮件点击解决方案, 选择生成解决方案. 第一次生成根据个人机器性能会消耗大概1-3分钟,呵呵. 但是以后会快很多的. 生成成功的话会在输出窗口显示如下: 一般都会生成成功,但是我生成的时候失败了很多次,后来发现是这个问题:http://www.cnblogs.co

Cocos2dx 学习笔记整理----开发环境搭建

最近在学习cocos2dx,预备将学习过程整理成笔记. 需要的工具和环境整理一下: 使用的版本 cocos2dx目前已经出到了v3.1.1,学习和项目的话还是用2.2.3为宜,毕竟不大想做小白鼠,并且学习了几天之后才发出3.X版本的,版本内容变动比较大. 开发环境 1 jdk 1.6以上 2 python 2.7为宜(创建项目要用的) 3 NDT+Android SDK 4 Cygwin或者MinGW 开发工具 1 Eclipse + CDT + ADT 2 VS2010 3 Sublime T