从iOS开发到cocos2D学习心得

第一篇:如何在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");

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容