cocos2d-x中有很多概念,下面就對這些概念做一下總結:
導演類
導演類ccdirector是cocos2d-x中乙個非常重要的類,它是乙個抽象類,用於管理場景物件,採用單例設計模式,在整個工程中只有乙個例項物件。由於是單例模式能夠儲存一致的配置資訊,便於管理場景物件
主要完成的工作如下:
初始化遊戲和銷毀遊戲
管理排程場景
調整設定opengl資訊
獲取設定遊戲的相關資訊
ccdirector * pdirector = ccdirector::shareddirector(); //得到乙個導演類,採用的是單例的模式獲取
ccdirector需要繫結乙個opengl檢視,將導演類所管理的場景繪製到繫結的opengl檢視上。x引擎提供了cceglview,同樣採用了單例模式。先拿到乙個cceglview,然後將導演類和cceglview繫結。
cceglview *pview = cceglview::sharedopenglview();
pdirector->setopenglview(pview);
pdirector->setdisplaystats(true); //開啟fps顯示功能
pdirector->setanimationinterval(1.0/60); //設定每秒鐘的幀率
ccsize size = pdirector->getwinsize(); //獲取螢幕大小
場景類:
scene場景也是cocos2dx中必不可少的元素,遊戲中通常我們需要構建不同的場景(至少乙個),遊戲裡關卡、版塊的切換也就是乙個乙個場景的切換,就像在電影中變換舞台和場地一樣。同時場景是層的容器,包含了所有需要顯示的遊戲元素。
一些函式的用法
// 執行乙個場景
void runwithscene(ccscene *pscene);
// 把當前場景壓入棧中,使其進入等待狀態
void pushscene(ccscene *pscene);
// 從棧頂彈出乙個場景物件
void popscene(void);
// 從棧中彈出所有場景物件,僅剩下根場景物件
void poptorootscene(void);
// 替換成新的場景物件
void replacescene(ccscene *pscene);
// 結束執行,釋放當前資源
void
end(void);
// 暫停執行的場景
void pause(void);
// 恢復執行的場景
void resume(void);
// 繪製場景內容
void drawscene(void);
層:
layer是處理玩家事件響應的node子類。與場景不同,層通常包含的是直接在螢幕上呈現的內容,並且可以接受使用者的輸入事件,包括觸控,加速度計和鍵盤輸入等。例如橫屏打鬥遊戲,人物向前行走的過程中,背景會不斷地滾動,但是遊戲的控制按鈕永遠在固定的位置不變。要向場景新增層,我們可以使用addchild方法。
addchild( node * child ) //child是節點,通常的節點就是層
addchild( node *child, int zorder ) //zorder指層與層之間的順序,
addchild( node *child, int zorder, int tag ) //tag是元素的表示號碼,給子節點設定了tag值,就可以在父節點中通過tag值找到子節點
auto layer = layercolor::create(color4b(0, 128, 128, 255));
layer->setcontentsize(ccsizemake(120, 80));
layer->setposition(point(50, 50));
addchild(layer, 10);
auto layer1 = layercolor::create(color4b(128, 0, 128, 255));
layer1->setcontentsize(ccsizemake(120, 80));
layer1->setposition(point(100, 80));
addchild(layer1, 20);
精靈:
cocos2d中的精靈和其他遊戲引擎中的精靈相似,它可以移動,旋轉,縮放,執行動畫,並接受其他轉換。cocos2dx的sprite由texure,frame和animation組成,由openes負責渲染。
建立精靈:
auto sprite = sprite::create("helloworld.png");
this->addchild(sprite,0); //直接建立
auto sprite1 = sprite::createwithtexture(texturecache::getinstance()->addimage("helloworld.png"));
this->addchild(sprite1, 0); //使用文理來建立精靈
auto sprite2=sprite::createwithspriteframename("helloworld.png");
this->addchild(sprite2, 0); //用精靈幀來建立精靈
cocos2dx的一些效果
綻開效果 1.animalnode setscale 0.1 2.animalnode setopacity 0 3.local action1 cc.spawn create cc.scaleto create 0.15,2.0 cc.fadeto create 0.15,255 4.local ...
cocos2d x 中的一些數學函式
ccp x,y 以座標x,y建立乙個向量 ccpfromsize s 以size s的width為x,height為y建立乙個向量 ccpoint的加減乘除運算運算 ccpadd v1,v2 等價 ccp v1.x v2.x,v1.y v2.y ccpsub v1,v2 等價 ccp v1.x v2...
Cocos2d x 核心概念
場景 特定時間,特定地點發生的事件的集合 層 圖層 ps中的層一致,場景是由乙個又乙個層構成的 tips 乙個場景可以有多個層,乙個場景至少有乙個層 在螢幕上移動的物件,他能被控制。特點 他是可以被控制的遊戲物件 通常是在螢幕上可以移動的物件 元素,如背景畫 動畫,如骨骼動畫等 例 手遊刺激戰場中你...