第一篇:如何在mac上搭建cocos2d开发环境。
- 首先要在cocos2d官网下载最新的cocos2d包,http://cn.cocos2d-x.org/download/,下载完成后打开终端,进入到根目录文件夹中:
cd /Users/apple/Desktop/Colin/Cocos2d-x/cocos2d-x-3.3/
然后执行./setup.py
如下图所示:
!(http://img.blog.csdn.net/20141217214417203?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGl0d2h5bHo=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
期间会有几次配置安卓SDK路劲的提示,如果不用设置直接按Enter键跳过就可以,之后会有提示
Please execute command: "source /Users/apple/.bash_profile" to make added system variables take effect
在终端输入source /Users/apple/.bash_profile
就好了,这样mac上的cocos2d开发环境就搭建好了。
创建工程
首先进入指定的文件夹:
cd /Users/apple/Desktop/Colin/Cocos2d-x/cocos2d-x-3.3/tools/cocos2d-console/bin/
创建项目
./cocos new HelloWorld -p com.history.HelloWorld -l cpp -d /Users/apple/Desktop/Colin/Cocos2d-x/WorkSpace
cocos new 工程名 -p 包名 -l 语言 -d 目标文件夹
这里面的com.history.HelloWorld就是该项目的bundleID
至此,mac下的cocos2D开发工作就已经搭建好了。
第二篇:Sprite精灵类
Sprite类的子类有PhysicsSprite和Skin。PhysiceSprite是物理引擎精灵类,而Skin是皮肤精灵类,用于骨骼动画(暂时不知道什么是骨骼动画)。
创建精灵类有多个函数:
*1)static Sprite *create(). 创建一个精灵对象,其属性要在创建后设置
*2)static Sprite *create(const std::string & filename).指定图片创建精灵。
*3)static Sprite *create(const std::string & filename,const Rect *rect).指定图片和裁剪的矩形区域来创建精灵4)static Sprite *createWithTexture(Texture 2D *texture).指定纹理创建精灵。
5)static Sprite *createWithTexture(Texture2D *texture,const Rect &rect,bool rotated=false).指定纹理和裁剪的矩形区域来创建精灵,第三个参数是指定是否旋转纹理,默认不旋转。
6)static Sprite *createWithSpriteFrame(SpriteFrame *pSpriteFrame).通过一个精灵帧对象创建另一个精灵对象。
- static Sprite *createWithSpriteFrameName(const std::string &spriteFrameName).通过指定帧缓存中精灵帧名创建精灵对象。
下面通过使用纹理对象来创建Sprite对象:
//创建背景
auto background = Sprite::create("HelloWorld.png");
background -> setAnchorPoint(Vec2::ZERO);
background ->setPosition(Vec2(0, 0));
this -> addChild(background,0);
//创建一个精灵(通过截取图片的一部分创建一个精灵)
auto sprite = Sprite::create("HelloWorld.png", Rect(10,10,60,60));
sprite ->setPosition(Vec2(200,200));
this ->addChild(sprite);
//使用纹理创建一个精灵
Texture2D *cache = Director::getInstance()->getTextureCache()->addImage("HelloWorld.png");
auto anoterSprite = Sprite::create();
anoterSprite->setTexture(cache);
anoterSprite-> setTextureRect(Rect(20, 20, 40, 40));
anoterSprite->setPosition(Vec2(400, 200));
this -> addChild(anoterSprite);
精灵的性能优化
游戏是一种很耗费资源的应用,特别是在移动设备中的游戏,性能优化是非常重要的。性能优化的方面有很多,这里只先介绍精灵相关的性能优化,关于其他方面的优化,会在后面的第20章介绍。精灵的性能优化可以使用精灵表和缓存。
使用纹理图集对精灵进行优化
纹理图集也称为精灵表,它是把许多小的精灵图片组合到一张大图里面。使用纹理图集有如下主要优点:
- 1)减少文件读取次数,读取一张图片比读取一堆小文件要快
- 2)减少OpenGLES 绘制调用并且加速渲染
- 3)减少内存消耗,OpenGL ES 1.1仅仅能够使用2的n次幂大小的图片,如果采用小图片OpenGL ES1.1会分配给每个图片2的n次幂大小的内存空间,即使这张图片达不到这样的宽度和高度也会分配大于此图片的2的n次幂大小的空间,那么运用这种图片集的方式将减少内存碎片。虽然在Cocos2d-x2.0后使用了OpenGLES2.0,它不会再分配2的几次幂的内存块了,但是减少读取次数和绘制的优势依然存在。(感觉这个和前端的图片加载有点类似)。
使用精灵帧缓存
精灵帧缓存是缓存的一种,缓存有如下几种:
1)纹理缓存。使用纹理缓存可以创建纹理对象。
2)精灵帧缓存。能够从精灵表中创建精灵帧缓存,然后再从精灵帧缓存中获得精灵对象,反复使用精灵对象时,使用精灵帧缓存可以节省内存消耗。
3)动画缓存。动画缓存主要用于精灵动画,精灵动画中的每一帧是从动画缓存中获取的。
使用精灵帧缓存涉及的类有SpriteFrame和SpriteFrameCache。使用SpriteFrameCache创建精灵对象的主要代码如下:
SpriteFrameCacae::getInstance()->addSpriteFramesWithFile("SpriteSheet.plist");
auto mountain1 = Sprite::createWithSpriteFrameName("mountain1.png");