Cocos Creator游戲開發(fā)基礎入門
在Cocos Creator游戲開發(fā)中,有幾個非常重要的基礎知識大家必須掌握,就是場景、場景樹、節(jié)點Node、組件Component。
一、 什么是場景和場景樹

一個游戲中可以有多個場景(例如登錄場景、修改密碼場景、游戲主場景等等),在游戲中通過代碼邏輯來控制場景跳轉。幾乎所有的場景的根節(jié)點都是Canvas節(jié)點,Canvas節(jié)點上面可以掛載各種各樣的組件,例如cc.Canvas組件,用于設計游戲的設計分辨率和適配策略。
根節(jié)點下面又可以有多個子節(jié)點,子節(jié)點下面又可以掛載子節(jié)點,如上圖所示,如此,構成的樹形結構我們稱之為場景樹。每個節(jié)點上面都可以掛載各種各樣的組件。
cc.Node就是場景樹中的節(jié)點對象。每個節(jié)點只要在場景里面,所以任何一個節(jié)點都是一個cc.Node。推薦一個學習交流群:1072209430
二、 cc.Node常用屬性及方法
1. 常用屬性
1: name: 獲取節(jié)點的名字
2: active: 設置節(jié)點的可見性;
3: position: 相對坐標,參照物是父親節(jié)點;
4: rotation: 旋轉,順時針為正, 數學逆時針為正;
5: scale: 縮放;
6: anchor: 錨點, 左下角(0, 0), 右上角(1, 1) 可以超過這個范圍
7: Size: 大小
8: Color: 環(huán)境顏色;
9: Opacity: 透明度;
10: Skew: 扭曲;
11: Group: 分組;
12: parent: 父親節(jié)點的cc.Node;
13: children/childrenCount: 孩子節(jié)點的數組;
14: tag : 節(jié)點標簽;
2. 常用方法及操作
1: 代碼中創(chuàng)建一個節(jié)點new cc.Node();
然后調用addChild; 加一個子節(jié)點
2: removeFromParent/ removeAllChildren;
3: setLocalZOrder/ 繪制順序, 在下面的會繪制在屏幕的上面;
4: 遍歷節(jié)點的子節(jié)點;
5: setPosition/getPosition,
6: getChildByName/getChildByTag, getChildByIndex,
7: cc.find(): 方便,不通用, 資源消耗較大
三、 cc.Component
1: 所有的組件都擴展自cc.Component(類, 構造函數);
2: 每個cc.Component組件實例都有個成員node,指向它關聯(lián)節(jié)點的cc.Node;
3: name: 每一個cc.Component組件通過name屬性可以獲得節(jié)點的名字;
4: 組件實例入口函數:
: 在組件加載的時候調用;
start: 組件第一次激活前, 調用在第一次update之前;
update(dt): 每次游戲刷新的時候調用,
lateUpdate(dt): 在update之后調用;
enabled:組件是否被啟動;
onEnable: 組件被允許的時候調用;
onDisable: 組件不被允許的時候調用;
四、 代碼組件(自定義組件)
1: 每個代碼組件實例都繼承自cc.Component(構造函數),所以有一個node數據成員指向cc.Node;
2: cc.Class({...}) 定義導出了一個新的類的構造函數,它繼承自cc.Component;
3: 當為每個節(jié)點添加組件的時候,會實例化(new)這個組件類,生成一個組件實例;(js語法new)
4: 當組件加載運行的時候,代碼函數里面的this指向這個組件的實例;
5: 代碼組件在掛載的時候擴展自cc.Component, 里面有個成員node會指向節(jié)點(cc.Node);所以在代碼組件里面,可以使用this.node來訪問這個組件實例說掛載的節(jié)點對象;