2012-03-14 76 views
1

即時通訊創建一個不使用傳統菜單系統的遊戲 - 在這裏你有不同的場景(如設置,關於,新遊戲等),然後你只需按下按鈕即可改變場景或類似的東西 - 但菜單內置於實際遊戲(按鈕放置在遊戲層)。 當按下按鈕時,根據遊戲邏輯出現不同的圖層(可以填滿整個屏幕)。這個想法是讓遊戲層始終存在(所以遊戲狀態永遠不會改變,即使你改變了一些參數,遊戲層也不需要重新初始化)。圖層或多或少包含可以滾動的按鈕和不同精靈的列表。cocos2d場景vs圖層

我最擔心的是由於屏幕上的許多圖像,遊戲的性能/內存會下降(遊戲層最多可以包含100個精靈並且總是存在 - 如果遊戲層前有一層遊戲圖層被暫停和隱藏)。

遊戲場景設置:

  • 遊戲層
  • 菜單層
  • 動態層(當按下某些按鈕被添加層)

如果我想改變的動態層進入一個場景會有什麼不同? (而不是創建一個新的圖層,我只是創建一個新的場景,並將其推入場景堆棧而不殺死遊戲層)。這兩種方法是相同還是存在任何關鍵差異(內存/性能方面)?

回答

0

我建議在這種情況下使用pushScene/popScene。它爲您節省了很多麻煩,例如後臺場景會自動暫停。

內存消耗應該大致相同。幾乎所有遊戲使用的內存都是紋理內存和音頻緩衝區,所以不要擔心自己可能在內存中有多少個精靈,而是他們將使用多少不同的紋理。

+0

動態圖層顯示大約100種不同的紋理/圖像+遊戲圖層中的紋理(比如說20) - 就好像您將在遊戲中有一個圖像選擇器,它將列出所有圖像在您的設備上。這就是爲什麼我問哪一個使用。使用場景確實可以讓您暫停遊戲等,但是您是否可以從活動場景中調用已暫停的場景(調用其功能)? – blejzz 2012-03-14 17:58:27

0

不,您應該使用一個圖層作爲場景。 並使用ccsprite代替子圖層。 如果您將所有場景放入shareDirector。它會慢慢崩潰。

+0

堆棧中最多有2個場景 - 一個是遊戲,另一個是動態場景。 – blejzz 2012-03-15 21:18:53