2012-09-29 60 views
1

我在Cocos2d中有一個主場景(遊戲場景)和一個去「配置」場景的按鈕。當用戶點擊主場景中的配置按鈕時,我使用pushScene進入「配置」場景。我使用pushScene的原因是允許用戶恢復他離開的遊戲。請問replaceScene只替換當前場景還是替換Cocos2d中的所有場景

在「配置」場景中有兩個選項:「取消」和「確定」。如果用戶點擊「取消」,我使用popScene並且遊戲繼續它離開的地方。如果用戶點擊「確定」,則使用replaceScene,因爲我希望遊戲從新配置開始。因此,當用戶點擊「確定」時,我知道「配置」場景被新的遊戲場景取代,但舊遊戲場景是否也被替換了?否則,我是否正確地做事,還是應該以另一種方式讓遊戲場景知道是應該恢復還是重新啓動。

我想確保我不會通過積累未更換的場景來泄漏內存。

回答

2

replaceScene方法完成它所說的。它取代了當前的場景。如果您將10個場景推到另一個場景中,它將取代第10個場景,並保留所有之前的場景。

這是我不推薦使用pushScene的原因之一。很容易忘記場景可能會比被彈出更多的情況。另一個原因是popScene不能通過轉換動畫。

順便說一句,如果你在新更換的場景pushScene後做replaceScene,然後popScene您可以輕鬆地測試此行爲。你會看到舊的場景彈出。通常情況下,如果popScene只有一個場景在堆棧中,它會發出一個斷言。

+0

謝謝。在這種情況下,我會盡量不使用pushScene因爲我想用一個過渡動畫它來創建功能。對於如何恢復遊戲或重新啓動,您有任何建議,具體取決於用戶的操作? – Andres