天天看點

cc.Node.場景樹

場景樹

1creator是由一個一個的遊戲場景組成,通過代碼邏輯來控制場景跳轉.

2creator場景是一個樹形結構

3父節點,子接地那 canvas可以當做根點選,然後再場景裡添加精靈 UI等等節點

4cc.Node是整個場景數中的節點對象.

5每個節點隻要是場景裡面的, 任何一個節點都有一個cc.Node

cc.Node屬性

1 name:擷取節點的名字

2 active:設定節點的可見性

3 position:相對坐标,相對應父節點的位置.

4 rotation:選中,數學是逆時針為正,creator是順時針為正

假如要按照數學旋轉90度,creator要旋轉270度,也就是360減去90度

5 scale:縮放

6 anchor:錨點左下角(0,0)右上角(1,1)錨點可以超過這個範圍

7 Size:大小,響應觸摸和這個大小有關系

8 坐标系:以左下角為坐标原點(0,0) 垂直線為x,豎直線為y.

9 Color:環境的顔色,比如滑鼠滑到上面 可以讓他變灰等

10 Opacity:透明度

11 Skew:扭曲 

12 Group:分組 碰撞檢測, 比如飛機大戰,敵人×××,飛機

13 parent:父節點的cc.Node

14 children/childrenCount:孩子節點數的數組

14 tag節點的标簽

cc.Component 元件

1所有的元件都擴充自cc.Component 

2每個cc.Component元件執行個體都有個node成員,指向他關聯節點的cc.node

3name每一個cc.Component通過name屬性可以獲得節點的名字;

4元件執行個體入口函數:

onLoad:元件加載的時候調用;

start:元件第一次激活時調用,并且是在第一次update之前

update(dt):每次遊戲重新整理的時候調用;

不常用的

lateUpdate(dt):在update之後調用

enabled:元件是否被啟動

onEnable:元件被允許的時候調用     就是被激活的時候

onDisable:元件不被允許的時候調用

代碼元件

1每個代碼元件執行個體都繼承自cc.Component(構造函數),

是以有一個node資料成員指向cc.node

2cc.Class({...})定義到處了一個新的類的構造函數,

Class類似一個接口, 他的參數是一個表,首先他内部會建立一個函數對象作為傳回值

然後 判斷你有沒有extend這個key,如果有那麼他就會先繼承這個key,表示父類,

并且先執行父類的構造函數, 然後周遊所有不是extend的參數把他們作為key加入進來

3當為每個節點添加元件的時候,會執行個體化(new)這個元件類,生成元件執行個體.

4當元件加載運作的時候,代碼函數裡面的this指向這個元件的執行個體.

5代碼元件在挂載的時候擴充自(cc.Component)裡面有個成員指向節點

是以在代碼元件裡面,可以使用this.node來通路這個元件執行個體挂載的節點對象

6通過this.node 就是指向他挂載的節點.

7通過節點可以使用他的屬性方法.

8this就是目前的元件的執行個體.

9節點可以挂載很多個元件.

10根節點 其實就是場景一個Canvas的父節點就是場景

11周遊子節點

每個數組元素就是一個cc.Node

1

2

3

4

5

6

<code>        </code><code>//傳回的是數組</code>

<code>        </code><code>var</code> <code>childer = </code><code>this</code><code>.node.children;</code>

<code>        </code><code>//周遊數組</code>

<code>        </code><code>for</code><code>(</code><code>var</code> <code>i = 0;i &lt; childer.length;i++){</code>

<code>            </code><code>console.log(childer[i].name);</code>

<code>        </code><code>}</code>

場景數相關方法

1 代碼中建立一個節點 new cc.Node()

var new_node = new cc.Node()

2 addChild 添加一個子節點到場景數

this.node.addChild(new_node)

3 removeFromParent 節點從父節點删除,

new_node.removeFromParent()

4 removeAllChildren删除所有的節點

this.node.removeAllChildren();

5查找子節點 getChildByName/getChildByTag/getChildByIndex

局部查找 

如果有同名的 那就先傳回先找到的

var item = this.node.getChildByName(節點名)

全局查找 我希望找這個節點的時候全局來搜尋,消耗時間

他的原理就是從根節點開始查找.

var item = cc.find("Canvas/parent/item1")

6 setPosition設定坐标 

 getPosition()擷取坐标相對位置

7層疊關系

在crator裡面 誰在左邊數型裡面越靠下,

那麼他繪制順序越靠前,覆寫下面的圖像 

他就是ZOrder 預設ZOrder是0

如果想讓他更靠前  可以通過setLoaclZOrder來設定

先擷取這個節點 然後這隻ZOrder 數值越大 越靠前

   var a2= this.node.getChildByName("a2");

      a2.setLocalZOrder(1);

 本文轉自超級極客51CTO部落格,原文連結:http://blog.51cto.com/12158490/2063414,如需轉載請自行聯系原作者