cocos2d x中的一些概念

2021-07-22 08:48:37 字數 2855 閱讀 7661

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 乙個場景可以有多個層,乙個場景至少有乙個層 在螢幕上移動的物件,他能被控制。特點 他是可以被控制的遊戲物件 通常是在螢幕上可以移動的物件 元素,如背景畫 動畫,如骨骼動畫等 例 手遊刺激戰場中你...