2014-10-30 63 views
2

我目前暫停的SKScene包含遊戲,並呈現另一SKScene含有它上面的菜單,使用self.view?.presentScene()顯示已暫停SKScene下另一個半透明SKScene

菜單場景有一個透明背景,並在過渡期間,我可以正確地看到暫停遊戲下方。但是當轉換完成時,背景會突然變黑,這表明遊戲場景已經消失。

當我顯示菜單時,有沒有辦法保留暫停的遊戲?

回答

0

還有另外一種方法。

菜單應該是添加了子節點的父節點。它不應該是它自己的場景。

當你想顯示你的菜單,暫停遊戲和菜單父節點添加到場景中。

+0

我原本是這樣做的,但由於包含菜單節點的場景已暫停,因此我無法在菜單中執行任何動畫。我希望有一個解決方案,讓我暫停遊戲,但更新菜單。 – 2014-10-30 17:48:19

+1

您可以將所有「遊戲性」節點添加到主「遊戲節點」,並將所有菜單項添加到場景本身。當你想暫停遊戲時,暫停「主遊戲節點」而不是場景本身。 – meisenman 2014-10-30 17:51:46

+0

這完美的作品。我不知道節點本身具有「暫停」屬性。是否有理由對這種技術保持警惕,還是像暫停場景一樣安全? – 2014-10-30 19:44:14

1

SKView可以一次只呈現一個場景。

但是,你仍然可以構建您的遊戲封裝​​菜單作爲自己的「場景」 - 它只是不能是SKScene。使菜單成爲節點,並將其添加到遊戲場景中。 (如果您需要在顯示菜單時在遊戲場景中設置paused,請將所有遊戲內容放入遊戲場景的子節點中,然後暫停)。您甚至可以爲子菜單重複此過程。您可以使用Xcode場景編輯器製作菜單 - 只需確保每個.sks文件中的菜單內容都位於您可以拉出的子節點中,並在加載文件時將其重新加入到實況場景中。

你可以看到蘋果的Bananas示例代碼項目中的這個例子。這是一個SceneKit(3D)遊戲,但它爲其HUD和菜單使用SpriteKit場景,使用這種技術將不同的菜單內容交換出來。