cocos2dx-3.2 笔记 - Sprite

  最近由于兴趣使用cocos2dx-3.2自己写了款小游戏,里面用到了一些常用的类,在这里作为笔记记录,作为后续复习使用,也希望能帮到后来的读者。

  cocos2dx更新算是比较快的,并且新旧版本的变化较大,在我用3.2版本时,网上的资料大多都是过时的,在此记录。

CCSpriteFrameCache

  先介绍下CCSpriteFrameCache,这个是用来将图片加载至内存,后续用的图片直接从CCSpriteFrameCache取即可,不需要重新在加载图片,这个是提高性能的一种方式,尤其对于图片较多的情况下,另外cocos2dx已经支持plist的方式处理一个由许多图片拼接出来的大图,这个仅需一次加载图片便可以了,某些情况下还可以节约内存一般提升游戏性能这个方式是首选,至于这种方式是怎样节约内存,网上有篇文章测试过,个人觉得很有道理,可惜那篇文章链接找不到了,自己有兴趣可以搜索下。

  进入正题:

  直接介绍plist的使用方式好了,生成plist的工具网上也有好多,我使用的是 TexturePacker。

  直接贴代码:

CCSpriteFrameCache::getInstance()->addSpriteFramesWithFile(strFileName+".plist",strFileName+".png"); 

  这样就将一张大图加载至内存了。

  加载图片:

CCSpriteFrame *frame = CCSpriteFrameCache::getInstance()->spriteFrameByName(pngName);

  其中pngName就是实际每个小图的名称,这个名称在用TexturePacker生成时就用了你用来拼接的小图名称。

  例:你用aa.png,bb.png.cc.png三张小图拼成一个一张叫big.png的大图,那么以上代码strFileName就是"big",pngName就是"aa.png","bb.png","cc.png"其中之一。当然你将大图加载在内存的时候,其实直接用小图名称当作一张本地的图片也是可以直接使用的,这个在下面的Sprite中介绍。

Sprite

  Sprite作为显示用的最基本的类之一,一般用来显示游戏主角等单个物体,当然你完全可以继承Sprite自己重新写个Sprite,可以将动画等效果嵌入进去。

  在Sprite上显示图片,有几种加载方式,直接上代码:

  

Sprite::createWithSpriteFrameName("aa.png");

  这个就是使用上面CCSpriteFrameCache中已加载好的内存图片创建Sprite;

Sprite::spriteWithFile("big.png");

  这个是直接使用图片加载。

Sprite s = Sprite::create();
s->initWithFile("big.png");

// s->initWithSpriteFrameName("aa.png");

  当然使用先创建,然后在init也是可以的。实际上看下源码,他内部也是先创建然后init的。

  

  

cocos2dx-3.2 笔记 - Sprite

时间: 2024-10-28 22:17:58

cocos2dx-3.2 笔记 - Sprite的相关文章

Cocos2DX新手入门笔记索引

01--从根源种子CCNode说起 02—从Cocos2DX视角看游戏组成 03--理解HelloWorld结构 04--简单菜单使用 05--简单场景切换与精灵创建 06--触摸事件响应 07--动作系统(一) 08--动作系统(二)使用即时动作 09--动作系统(三)使用持续动作 11--瓦片地图(一)简单实用 12--使用背景音乐 13--游戏存档 14--物理引擎Box2D 15--Box2D使用(一.创建物理世界) 16--Box2D使用(二.显示物理世界) 17--Box2D使用(三

cocos2dx 3.x以上(Sprite精灵类的相关属性与创建)

// //  MainScene.cpp //  helloworld // //  Created by apple on 16/9/19. // // #include "MainScene.hpp" Scene * MainScene::createScene() { auto scene = Scene::create(); //    CCScene * scene = CCScene::create();// 创建场景 //创建层 MainScene *layer = Ma

cocos2d-x lua 学习笔记(1) -- 环境搭建

Cocos2d-x 3.0以上版本的环境搭建和之前的Cocos2d-x 2.0 版差异较大的,同时从Cocos2d-x 3.0项目打包成apk安卓应用文件,搭建安卓环境的步骤有点繁琐,但搭建一次之后,以后就会非常快捷!OK,现在就开始搭建环境吧! 1.cocos2d-x环境的设置以及android的环境搭建 1.下载cocos2d-x 3.0正式版 2.下载android的sdk以及ndk 3.下载ant (注:cocos2d-x的环境变量配置需要用到ant,主要是android需要使用到它)

Cocos2d-x游戏开发笔记(一)游戏背景音乐的添加

    游戏在运行期间,背景音乐必不可少,一个好的音效能把游戏的互动效果提高一个层次. 在Cocos2d-x中,CocosDenshion实现了3个音效引擎,由底层到高级分别是: 1. CDSoundEngine         2. CDAudioManager         3. SimpleAudioEngine 具体过程: 1)包含CocosDenshion库: 2)在HelloWorldSence.cpp中引入头文件: #include "SimpleAudioEngine.h&qu

5.27:cocos2d-x初探学习笔记(2)--重要概念及Test样例结构(转)

1.几个重要概念 在cocos2d引擎中,有几个概念,各自是导演.场景,布景和人物角色. 导演(CCDirector):在cocos2d-x引擎中,导演类是游戏的组织者和领导者.导演制定规则让游戏内的场景.布景,和人物角色有序的执行 摄像机(CCCamera):每一个节点都须要使用摄像机,当节点发生缩放,旋转.和位置变化时,都须要覆盖摄像机,让这个节点通过摄像机又一次渲染. 场景(CCScene):在游戏里,场景就是关卡.关卡有人物和背景构成. 布景(CCLayer):从概念上说.布景就是场景里

cocos2dx lua学习笔记 <一> quick 3.5把自定义C++类绑定到lua

请尊重原创 转载请著名出处:http://blog.csdn.net/wushao126/article/details/46660375 首先去官网下载最新的quick,配置好环境,创建一个lua工程,命令 cocos new XXX(项目名称) -p com.xxxx.xxxx(包名) -l lua -d xxx(新建工程保存路径) 工程创建后,找到工程目录下的frameworks\runtime-src\Classes,创建一个c++类,我创建的类是 文件名:LuaBindingTest.

cocos2d-x lua 函数笔记

—设置叠加模式,高亮 setBlend=function(sp,ctype) local blendType={ {GL_ONE,GL_ONE_MINUS_SRC_ALPHA}, {GL_SRC_ALPHA,GL_ONE} } local cc=ccBlendFunc(); cc.src=blendType[ctype][1]; cc.dst=blendType[ctype][2]; sp:setBlendFunc(cc); end —赋值变量 function nvl(var,value) i

cocos2dx项目开发笔记,碎片记录

1.项目中遇到的问题: 昵称显示过长的时候,需要对label做裁剪,首先想到的是用clippingNode,这东西,自己在很多地方都用,不过项目中很多地方都需要做到限制Label长度,于是就又想到做个工具类吧,尽量写的像label到时候全局替换.然后直到今天...才发现label直接设置换行长度(setDimensions(width, height)),高度设置成本身等高就可以了,真的是泪目.

Cocos2d-X lua 学习笔记之消息弹窗

实现游戏中需要在屏幕底部弹出消息提示弹窗,经过特定时间后渐隐消失.当有新的消息提示时,原来没有消失的弹窗会上移,并继续渐隐直至消失. 转载声明:http://blog.csdn.net/operhero1990/article/details/47165365 1.使用cocostudio建立一个最简单的弹窗界面,命名为hintFrame 设置黑底的透明度为100/255,这样能起到一个蒙版的效果.两个Label分别显示消息题目和内容. 2.创建控制弹窗的lua类脚本,命名为UI_hintFra