第一篇:如何在mac上搭建cocos2d開發(fā)環(huán)境。
- 首先要在cocos2d官網(wǎng)下載最新的cocos2d包,http://cn.cocos2d-x.org/download/,下載完成后打開終端,進(jìn)入到根目錄文件夾中:
cd /Users/apple/Desktop/Colin/Cocos2d-x/cocos2d-x-3.3/
然后執(zhí)行./setup.py如下圖所示:
!(http://img.blog.csdn.net/20141217214417203?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGl0d2h5bHo=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
期間會有幾次配置安卓SDK路勁的提示,如果不用設(shè)置直接按Enter鍵跳過就可以,之后會有提示
Please execute command: "source /Users/apple/.bash_profile" to make added system variables take effect
在終端輸入source /Users/apple/.bash_profile就好了,這樣mac上的cocos2d開發(fā)環(huán)境就搭建好了。
創(chuàng)建工程
首先進(jìn)入指定的文件夾:
cd /Users/apple/Desktop/Colin/Cocos2d-x/cocos2d-x-3.3/tools/cocos2d-console/bin/創(chuàng)建項目
./cocos new HelloWorld -p com.history.HelloWorld -l cpp -d /Users/apple/Desktop/Colin/Cocos2d-x/WorkSpace
cocos new 工程名 -p 包名 -l 語言 -d 目標(biāo)文件夾
這里面的com.history.HelloWorld就是該項目的bundleID
至此,mac下的cocos2D開發(fā)工作就已經(jīng)搭建好了。
第二篇:Sprite精靈類
Sprite類的子類有PhysicsSprite和Skin。PhysiceSprite是物理引擎精靈類,而Skin是皮膚精靈類,用于骨骼動畫(暫時不知道什么是骨骼動畫)。
創(chuàng)建精靈類有多個函數(shù):
*1)static Sprite *create(). 創(chuàng)建一個精靈對象,其屬性要在創(chuàng)建后設(shè)置
*2)static Sprite *create(const std::string & filename).指定圖片創(chuàng)建精靈。
*3)static Sprite *create(const std::string & filename,const Rect *rect).指定圖片和裁剪的矩形區(qū)域來創(chuàng)建精靈4)static Sprite *createWithTexture(Texture 2D *texture).指定紋理創(chuàng)建精靈。
5)static Sprite *createWithTexture(Texture2D *texture,const Rect &rect,bool rotated=false).指定紋理和裁剪的矩形區(qū)域來創(chuàng)建精靈,第三個參數(shù)是指定是否旋轉(zhuǎn)紋理,默認(rèn)不旋轉(zhuǎn)。
6)static Sprite *createWithSpriteFrame(SpriteFrame *pSpriteFrame).通過一個精靈幀對象創(chuàng)建另一個精靈對象。
- static Sprite *createWithSpriteFrameName(const std::string &spriteFrameName).通過指定幀緩存中精靈幀名創(chuàng)建精靈對象。
下面通過使用紋理對象來創(chuàng)建Sprite對象:
//創(chuàng)建背景
auto background = Sprite::create("HelloWorld.png");
background -> setAnchorPoint(Vec2::ZERO);
background ->setPosition(Vec2(0, 0));
this -> addChild(background,0);
//創(chuàng)建一個精靈(通過截取圖片的一部分創(chuàng)建一個精靈)
auto sprite = Sprite::create("HelloWorld.png", Rect(10,10,60,60));
sprite ->setPosition(Vec2(200,200));
this ->addChild(sprite);
//使用紋理創(chuàng)建一個精靈
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);
精靈的性能優(yōu)化
游戲是一種很耗費資源的應(yīng)用,特別是在移動設(shè)備中的游戲,性能優(yōu)化是非常重要的。性能優(yōu)化的方面有很多,這里只先介紹精靈相關(guān)的性能優(yōu)化,關(guān)于其他方面的優(yōu)化,會在后面的第20章介紹。精靈的性能優(yōu)化可以使用精靈表和緩存。
使用紋理圖集對精靈進(jìn)行優(yōu)化
紋理圖集也稱為精靈表,它是把許多小的精靈圖片組合到一張大圖里面。使用紋理圖集有如下主要優(yōu)點:
- 1)減少文件讀取次數(shù),讀取一張圖片比讀取一堆小文件要快
- 2)減少OpenGLES 繪制調(diào)用并且加速渲染
- 3)減少內(nèi)存消耗,OpenGL ES 1.1僅僅能夠使用2的n次冪大小的圖片,如果采用小圖片OpenGL ES1.1會分配給每個圖片2的n次冪大小的內(nèi)存空間,即使這張圖片達(dá)不到這樣的寬度和高度也會分配大于此圖片的2的n次冪大小的空間,那么運用這種圖片集的方式將減少內(nèi)存碎片。雖然在Cocos2d-x2.0后使用了OpenGLES2.0,它不會再分配2的幾次冪的內(nèi)存塊了,但是減少讀取次數(shù)和繪制的優(yōu)勢依然存在。(感覺這個和前端的圖片加載有點類似)。
使用精靈幀緩存
精靈幀緩存是緩存的一種,緩存有如下幾種:
1)紋理緩存。使用紋理緩存可以創(chuàng)建紋理對象。
2)精靈幀緩存。能夠從精靈表中創(chuàng)建精靈幀緩存,然后再從精靈幀緩存中獲得精靈對象,反復(fù)使用精靈對象時,使用精靈幀緩存可以節(jié)省內(nèi)存消耗。
3)動畫緩存。動畫緩存主要用于精靈動畫,精靈動畫中的每一幀是從動畫緩存中獲取的。
使用精靈幀緩存涉及的類有SpriteFrame和SpriteFrameCache。使用SpriteFrameCache創(chuàng)建精靈對象的主要代碼如下:
SpriteFrameCacae::getInstance()->addSpriteFramesWithFile("SpriteSheet.plist");
auto mountain1 = Sprite::createWithSpriteFrameName("mountain1.png");