2013-11-27 61 views
0

所以基本上我想要做的是當我的遊戲玩家完成一個級別(例如級別1)時,它將場景切換回級別選擇場景,並交換級別的精靈圖片1到另一個(例如在其上有複選標記的)。我可以替換場景,但我不知道如何在新場景中更改精靈,特別是在完成關卡後場景發生變化時。所以我假設我會使用單身課程,對嗎?如果是這樣,我將如何去使用它?從不同的場景訪問CCSprite

+0

沒有,你不會使用單身人士,你會測試看看你是否用Cocos2d的持續信息幫助完成了關卡。 –

+0

你有試過什麼嗎?如果是這樣,展示它!在許多情況下,單身人士並不是你最好的朋友。有了你所問的問題,我懷疑你可以認識到他們什麼時候會不合適。在這種情況下,我懷疑這將是一個好策略。 – YvesLeBorg

回答

0

單身是可以的,不要害怕使用它們。 cocos2d的許多組件都是單例。

我認爲你需要的是某種結構來跟蹤遊戲的狀態。 (完成多少個等級/下一個等級應該等等)。當你的關卡選擇場景被加載時,它應該查看'遊戲狀態'對象(無論是單身,plist等)並相應顯示。

我會遠離將信息直接從一個場景傳遞到另一個場景,這使得重新排序他們後頭痛。

+0

謝謝!非常有用的建議。 – user2499470

0

首先,讓我確保正確理解問題。

  1. 你有一個場景(A)和一個精靈。
  2. 您轉換到另一場景(B)進行遊戲。
  3. 遊戲結束,您轉換回場景A.
  4. 當場景A重新顯示時,您想要更改精靈顯示的圖像。

如果我有這個權利,那麼無論單身人士是好還是不好,你都不需要這樣做。

如果和我一樣,您已經使用CCSpriteFrameCache中的顯示框創建了精靈,那麼您可以簡單地在「A」重新顯示時更改要使用該精靈的框架。

一些示例代碼演示此可以看出另一個問題:

How to switch the image of a CCSprite

(當然,如果我有這個權利,然後隨意只是欺騙這個)

+0

這是正確的,但我只想在關卡完成的情況下更改精靈。我也有一個後退按鈕返回到相同的場景,以便可能有問題 – user2499470

+0

這應該不成問題。我通常在這種情況下做的事情是在轉換回A之前設置一個由場景B調用的委託。該調用告知A需要知道的任何事情,以便它可以進行需要的任何更改。後退按鈕可以調用一個委託消息,而「完成」事件可以調用另一個。或者,他們可以調用同一個並傳遞一個狀態作爲參數。 – PKCLsoft