2014-09-21 42 views
0

我試圖做兩個SKScenes之間的過渡。但是現在,當我運行我的代碼並呈現新的SKScene(通過按下按鈕)時,呈現並且完美運行新場景,除了傳遞場景中包含的某些元素仍然存在(按鈕和背景) 根據Apple的Sprite套件編程指南(適用於Obj.-c)第66頁「對舊場景的強烈引用會自動刪除」,如果是這種情況,我不明白爲什麼我仍舊擁有舊場景中的元素。而且我怎麼去分配舊的場景,所以在我的新場景中並沒有出現任何內容,也爲了記憶的目的。這裏是林如何呈現不在我GameViewController.swift現場我的新場景這段代碼是我Menu.swift裏面的代碼:dealloc舊SKscene Swift

func buttonAction(sender:UIButton!) {  

    let skView = self.view? as SKView? 
    skView?.ignoresSiblingOrder = true 
    let gamingScene = GameScene(size: CGSize(width: 1024, height: 768)) 
    gamingScene.scaleMode = .AspectFill 
    skView?.presentScene(gamingScene) 

} 
+1

UI元素,如UiButtons和UiViews,必須從SKView手動刪除。 – 0x141E 2014-09-21 07:33:52

+0

謝謝,夥計,它的工作 – 2014-09-21 19:51:10

回答

1

因爲UI元素添加爲「子視圖」這些不依賴的SKScene。所以你必須在呈現新場景之前將其刪除。

使用此行代碼,當你過渡到一個新的場景刪除UI元素

self.buttonAcion.removeFromSuperview()