从iOS开发到cocos2D学习心得

第一篇:如何在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).通过一个精灵帧对象创建另一个精灵对象。

    1. 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");

你可能感兴趣的:(从iOS开发到cocos2D学习心得)