場景樹
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 < 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,如需轉載請自行聯系原作者