中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Scene,Director, Layer 和 Sprite

發布時間:2020-07-19 07:23:20 來源:網絡 閱讀:884 作者:imik 欄目:游戲開發

  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的示例:

CCLayerGradient* layer1 = CCLayerGradient::create(ccc4(25500255), ccc4(2550255255));

 2 layer1->setContentSize(CCSizeMake(8080)); 

3 layer1->setPosition(ccp(50,50)); 

4 addChild(layer1); 

CCLayerGradient* layer2 = CCLayerGradient::create(ccc4(000127), ccc4(255255255127)); 

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(8080));

13 layer3->setPosition(ccp(150,140));

14layer3->setStartColor(ccc3(25500));

15 layer3->setEndColor(ccc3(2550255));

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網游
 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临朐县| 吴旗县| 金堂县| 张掖市| 武义县| 来安县| 石河子市| 永昌县| 嵊泗县| 唐海县| 正阳县| 盘锦市| 玉林市| 金秀| 芜湖县| 田林县| 丽江市| 高尔夫| 石家庄市| 闽清县| 铜鼓县| 岳池县| 绵阳市| 加查县| 剑川县| 浪卡子县| 岐山县| 隆子县| 卫辉市| 潜江市| 铁岭市| 大兴区| 浦东新区| 瑞安市| 晋宁县| 上饶市| 定兴县| 汉川市| 马龙县| 河源市| 临夏县|