您好,登錄后才能下訂單哦!
Scene:
在應用程序中,scene是相對獨立的一塊,在很多其他的引擎中,也把它稱之為“畫布”或者“舞臺”。
在cocos2d-x中,一個應用可以有多個scene,但任何時刻只能有一個是acitve的。一個CCScene由多個CCNode組成,一般是包含若干個CCLayer,而CCLayer又包含多個CCSprite。需要注意的是,CCScene,CCLayer和CCSprite都繼承了CCNode,只不過后者還有其他的父類,使用多繼承進行實現。可以得知cocos2d-x的可視化數據組織就是一棵場景樹,只不過其中的有些中間節點被賦予了額外的邏輯(比如CCScene和CClayer)
由于Scene是CCNode的子類,所以可以進行手動或者使用Actions進行變換。
有一族特殊的scene叫CCTransitionScene,從CCScene派生而來,可以實現場景切換特效,比如褪色,翻頁等效果。
Director:
Director是一個共享的單例對象,用來控制場景Scene之間的切換。Director知道當前Active的Scene。可以通過Director在場景棧的棧頂push一個新的scene來進行場景切換。將之前的Scene B壓棧,push Scene A,但并不從內存中銷毀Scene B。如果將棧頂Scene A彈出,則會切換到Scene B,而且狀態也恢復到之前壓棧的狀態。
Director 還負責OpenGL ES 的初始化。
Layer:
Layer是一種可以處理觸摸事件的CCNode,可以在代碼中看它除了額外繼承CCNode之外,還繼承了CCTouchDelegate。CCLayer知道如何繪制自己,并且可以半透,讓玩家看到其他的Layer。CCLayer在定義游戲的外觀和行為時非常有用,所以你應該花大量的編碼時間來開發自己所需要的CCLayer子類。
CCLayer可以在ccTouchBegan, ccTouchMoved, ccTouchEnded和ccTouchCancelled中處理相應的事件,而且在場景中的所有Layer都會收到這些事件,直到某個Layer處理了為止。
除了可以開發自己所需要的CCLayer子類之外,cocos2d-x還提供了幾種實現好的Layer,比如CCMenu,CCColorLayer和CCLayerMultiplex等。
CCLayer可以包含任何CCNode的子類,包括CCSprite,CCLabels乃至其他的CCLayer子類。CCLayer也可以手動或者使用Actions進行變換。
以下是使用一種漸變Layer的示例:
1 CCLayerGradient* layer1 = CCLayerGradient::create(ccc4(255, 0, 0, 255), ccc4(255, 0, 255, 255));
2 layer1->setContentSize(CCSizeMake(80, 80));
3 layer1->setPosition(ccp(50,50));
4 addChild(layer1);
5
6 CCLayerGradient* layer2 = CCLayerGradient::create(ccc4(0, 0, 0, 127), ccc4(255, 255, 255, 127));
7 layer2->setContentSize(CCSizeMake(80,80));
8 layer2->setPosition(ccp(100,90));
9 addChild(layer2);
10
11 CCLayerGradient* layer3 =CCLayerGradient::create();
12 layer3->setContentSize(CCSizeMake(80, 80));
13 layer3->setPosition(ccp(150,140));
14layer3->setStartColor(ccc3(255, 0, 0));
15 layer3->setEndColor(ccc3(255, 0, 255));
16 layer3->setStartOpacity(255);
17layer3->setEndOpacity(255);
18 ccBlendFunc blend;
19 blend.src = GL_SRC_ALPHA;
20 blend.dst = GL_ONE_MINUS_SRC_ALPHA;
21 layer3->setBlendFunc(blend);
22 addChild(layer3);
Sprite:
Sprite的概念和其他的2D引擎是差不多的,就是一個2D的圖像,可以旋轉平移縮放。
Sprite可以包含其他的Sprite作為子節點,當父節點被變換時,子節點會一起被變換。
Sprite可以手動或者使用Actions進行變換。
希望能為需要的朋友解決問題,
如果還不能解決可以聯系QQ897703027,email: hongjiandao@163.com
歡迎大家交流cocos2d-x,C++等各方面的知識,或者創業團隊求收留,本人目前在做cocos2dx網游
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。