(四)常用節(jié)點(diǎn)和組件接口

(四)常用節(jié)點(diǎn)和組件接口

在通過(guò)訪問(wèn)節(jié)點(diǎn)和組件介紹的方法獲取到節(jié)點(diǎn)或組件實(shí)例后勃刨,這篇文章將會(huì)介紹通過(guò)節(jié)點(diǎn)和組件實(shí)例可以通過(guò)哪些常用接口實(shí)現(xiàn)我們需要的種種效果和操作衅澈。這一篇也可以認(rèn)為是 cc.Node 和 cc.Component 類的API閱讀指南悯搔,可以配合 API 一起學(xué)習(xí)理解斩萌。

節(jié)點(diǎn)狀態(tài)和層級(jí)操作

假設(shè)我們?cè)谝粋€(gè)組件腳本中置吓,通過(guò) this.node 訪問(wèn)當(dāng)前腳本所在節(jié)點(diǎn)护姆。

關(guān)閉/激活節(jié)點(diǎn)

this.node.active = false;

該操作會(huì)關(guān)閉節(jié)點(diǎn)修械,當(dāng)該節(jié)點(diǎn)的所有父節(jié)點(diǎn)都激活把鉴,將意味著:

在場(chǎng)景中隱藏該節(jié)點(diǎn)和所有子節(jié)點(diǎn)
該節(jié)點(diǎn)和所有子節(jié)點(diǎn)上的所有組件都將被禁用仆潮,也就是不會(huì)再執(zhí)行這些組件中的 update 中的代碼
這些組件上如果有 onDisable 方法宏蛉,這些方法將被執(zhí)行
this.node.active = true;

該操作會(huì)激活節(jié)點(diǎn)遣臼,當(dāng)該節(jié)點(diǎn)的所有父節(jié)點(diǎn)都激活性置,將意味著:

在場(chǎng)景中重新激活該節(jié)點(diǎn)和所有子節(jié)點(diǎn),除非子節(jié)點(diǎn)單獨(dú)設(shè)置過(guò)關(guān)閉
該節(jié)點(diǎn)和所有 active 的子節(jié)點(diǎn)上的所有 enabled 的組件都會(huì)被啟用揍堰,他們中的 update 方法之后每幀會(huì)執(zhí)行
這些組件上如果有 onEnable 方法鹏浅,這些方法將被執(zhí)行

更改節(jié)點(diǎn)的父節(jié)點(diǎn)

假設(shè)父節(jié)點(diǎn)為 parentNode嗅义,子節(jié)點(diǎn)為 this.node

您可以:parentNode.addChild(this.node)this.node.parent = parentNode這兩種方法是等價(jià)的。

索引節(jié)點(diǎn)的子節(jié)點(diǎn)

this.node.children 將返回節(jié)點(diǎn)的所有子節(jié)點(diǎn)數(shù)組隐砸。

this.node.childrenCount 將返回節(jié)點(diǎn)的子節(jié)點(diǎn)數(shù)量之碗。

注意 以上兩個(gè) API 都只會(huì)返回節(jié)點(diǎn)的直接子節(jié)點(diǎn),不會(huì)返回子節(jié)點(diǎn)的子節(jié)點(diǎn)季希。

更改節(jié)點(diǎn)的變換(位置褪那、旋轉(zhuǎn)、縮放式塌、尺寸)

更改節(jié)點(diǎn)位置
分別對(duì) x 軸和 y 軸坐標(biāo)賦值:

this.node.x = 100; this.node.y = 50;

設(shè)置 position 變量:

this.node.position = cc.p(0, 0);

使用 setPosition 方法:

node.setPosition(cc.p(0, 0)); node.setPosition(0, 0);

以上兩種用法等價(jià)博敬。
更改節(jié)點(diǎn)旋轉(zhuǎn)
this.node.rotation = 90;

或

this.node.setRotation(90);
更改節(jié)點(diǎn)縮放
this.node.scaleX = 2; this.node.scaleY = 2;

或

this.node.setScale(2); this.node.setScale(2, 2);

以上兩種方法等價(jià)。setScale 傳入單個(gè)參數(shù)時(shí)峰尝,會(huì)同時(shí)修改 scaleX 和 scaleY
更改節(jié)點(diǎn)尺寸
this.node.setContentSize(100, 100); this.node.setContentSize(cc.p(100, 100));

或

this.node.width = 100; this.node.height = 100;

以上兩種方式等價(jià)偏窝。
更改節(jié)點(diǎn)錨點(diǎn)位置
this.node.anchorX = 1; this.node.anchorY = 0;

或

this.node.setAnchorPoint(1, 0);

注意以上這些修改變換的方法會(huì)影響到節(jié)點(diǎn)上掛載的渲染組件,比如 Sprite 圖片的尺寸武学、旋轉(zhuǎn)等等祭往。

顏色和不透明度

在使用 Sprite, Label 這些基本的渲染組件時(shí),要注意修改顏色和不透明度的操作只能在節(jié)點(diǎn)的實(shí)例上進(jìn)行火窒,因?yàn)檫@些渲染組件本身并沒(méi)有設(shè)置顏色和不透明度的接口硼补。

假如我們有一個(gè) Sprite 的實(shí)例為 mySprite,如果需要設(shè)置它的顏色:

mySprite.node.color = cc.Color.RED;

設(shè)置不透明度:

mySprite.node.opacity = 128;

常用組件接口

cc.Component 是所有組件的基類沛鸵,任何組件都包括如下的常見(jiàn)接口(假設(shè)我們?cè)谠摻M件的腳本中括勺,以 this 指代本組件):

this.node:該組件所屬的節(jié)點(diǎn)實(shí)例
this.enabled:是否每幀執(zhí)行該組件的 update 方法,同時(shí)也用來(lái)控制渲染組件是否顯示
update(dt):作為組件的成員方法曲掰,在組件的 enabled 屬性為 true 時(shí)疾捍,其中的代碼會(huì)每幀執(zhí)行
onLoad():組件所在節(jié)點(diǎn)進(jìn)行初始化時(shí)(創(chuàng)建之后通過(guò)設(shè)置父節(jié)點(diǎn)添加到節(jié)點(diǎn)樹)執(zhí)行
start():會(huì)在該組件第一次 update 之前執(zhí)行,通常用于需要在 onLoad 初始化完畢后執(zhí)行的邏輯栏妖。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末乱豆,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子吊趾,更是在濱河造成了極大的恐慌宛裕,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件论泛,死亡現(xiàn)場(chǎng)離奇詭異揩尸,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)屁奏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門岩榆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事勇边∮倘觯” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵粒褒,是天一觀的道長(zhǎng)识颊。 經(jīng)常有香客問(wèn)我,道長(zhǎng)奕坟,這世上最難降的妖魔是什么祥款? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮月杉,結(jié)果婚禮上镰踏,老公的妹妹穿的比我還像新娘。我一直安慰自己沙合,他們只是感情好奠伪,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著首懈,像睡著了一般绊率。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上究履,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天滤否,我揣著相機(jī)與錄音,去河邊找鬼最仑。 笑死藐俺,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的泥彤。 我是一名探鬼主播欲芹,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼吟吝!你這毒婦竟也來(lái)了菱父?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤剑逃,失蹤者是張志新(化名)和其女友劉穎浙宜,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蛹磺,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡粟瞬,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了萤捆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片裙品。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡乓梨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出清酥,到底是詐尸還是另有隱情,我是刑警寧澤蕴侣,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布焰轻,位于F島的核電站,受9級(jí)特大地震影響昆雀,放射性物質(zhì)發(fā)生泄漏辱志。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一狞膘、第九天 我趴在偏房一處隱蔽的房頂上張望揩懒。 院中可真熱鬧,春花似錦挽封、人聲如沸已球。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)智亮。三九已至,卻和暖如春点待,著一層夾襖步出監(jiān)牢的瞬間阔蛉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工癞埠, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留状原,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓苗踪,卻偏偏與公主長(zhǎng)得像颠区,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子通铲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理瓦呼,服務(wù)發(fā)現(xiàn),斷路器测暗,智...
    卡卡羅2017閱讀 134,657評(píng)論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法央串,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法碗啄,繼承相關(guān)的語(yǔ)法质和,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 31,634評(píng)論 18 399
  • (在征求案主同意稚字,且不公開案主信息的情況下分享) 案主行星分布在上半球居多饲宿,意味著案主是個(gè)外向的人厦酬,擅長(zhǎng)交際,此生...
    生命探索者閱讀 967評(píng)論 0 0