層(layer)的生命週期函式有例如以下:
init()。初始化層呼叫。
onenter()。進入層時候呼叫。
onentertransitiondidfinish()。
進入層並且過渡動畫結束時候呼叫。
onexit()。退出層時候呼叫。
onexittransitiondidstart()。退出層並且開始過渡動畫時候呼叫。
cleanup()。
層物件被清除時候呼叫。
提示 層(layer)繼承於節點(node),這些生命週期函式根本上是從node繼承而來。其實全部node物件(包含:場景、層、精靈等)都有這些函式。僅僅要是子類化這些類都能夠重寫這些函式,來處理這些物件的不同生命週期階段事件。
我們重寫helloworld層的中幾個生命週期函式,**例如以下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
bool helloworld::init()
log(
"helloworldinit"
);
......
returntrue;
}
void
helloworld::onenter()
voidhelloworld::onentertransitiondidfinish()
void
helloworld::onexit()
voidhelloworld::onexittransitiondidstart()
void
helloworld::cleanup()
注意 在重寫層生命週期函式中,第一行**應該是呼叫父類的函式。比如helloworld::onenter()中第一行應該是layer::onenter()函式,假設不呼叫父類的函式可能會導致層中動畫、動作或計畫無法執行。
假設helloworld是第乙個場景,當啟動helloworld場景時候,它的呼叫順序例如以下圖所看到的:
Cocos2d x之場景切換
在很多rpg遊戲中大部分存在多個場景,如開始的歡迎介面 選單介面 戰鬥介面 場景切換只需要呼叫ccdirector shareddirector replacescene s s為新的場景,這句 的是含意,是用新的場景s去替換掉舊的場景,但是這樣的場景替換,來得太突然,給使用者的感覺不太好,我們需要...
cocos2dx切換場景
分享一下cocos2dx切換場景函式 場景a切換到場景b,有切換特效 呼叫順序如下 aaabababa a 建構函式 a onenter a onentertransitiondidfinish b 建構函式 a onexittransitiondidstart b onenter a onexit...
COCOS2DX 場景與層
runscene scene 啟動第乙個場景時使用 popscene 與pushscene配合使用,可以回到上乙個場景 poptorootscene 與pushscene配合使用,可以回到根場景 2.場景過渡動畫 由transitionsecene和它的子類展示 3.場景的生命週期函式 ctor建構...