Cocos2d x場景功能描述的生命週期

2021-09-22 09:16:28 字數 2141 閱讀 1194

層(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;

}

voidhelloworld::onenter()

voidhelloworld::onentertransitiondidfinish()

voidhelloworld::onexit()

voidhelloworld::onexittransitiondidstart()

voidhelloworld::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建構...