2015-10-28 30 views
0

我想製作一個遊戲,玩家可以選擇他們想玩的角色。目前我有一個場景,他們選擇角色,當他們點擊一個角色時,它會轉換到他們玩遊戲的場景。我試圖通過設置一個基於他們選擇的字符的整數值,然後使用NSUserDefaults在下一個場景中提供此整數值,我在這些場景中創建了決定角色紋理(基於他們選擇的人)的條件。但它沒有用,我的角色沒有紋理就顯示出來了。選擇一個角色 - 斯威夫特/ SpriteKit

我的問題有什麼更好的方法呢?

這是我目前的:

我有在遊戲場景中創建兩個人物兩個函數,我打電話給他們這樣的根據場景選擇的角色,玩家選擇角色:

if choosePlayer == 1{ 

     addDrake() 
    }else if choosePlayer == 2{ 

     addFuture() 
    } 

目前沒有任何字符顯示出來。

UPDATE:

我印刷choosePlayer變量和我發現這個問題 - 它停留等於0出於某種原因。在我選擇的角色場景中,當玩家選擇其中一個角色時,它應該改變choosePlayer的值(最初設置爲Int()),然後轉換到下一個場景。 SO讓他們說點擊Future。這是我的代碼:

else if chooseFuture.containsPoint(location){ 

     choosePlayer = 2 

     let playScene = PlayScene(size: self.size) 
     let transition = SKTransition.flipVerticalWithDuration(0.0) 
     playScene.scaleMode = SKSceneScaleMode.AspectFill 
     self.scene!.view?.presentScene(playScene, transition: transition) 
    } 
+0

您是否記得在傳入時同步NSUserDefaults?如果您不調用同步,它只會緩衝直到有足夠的數據。 – Gliderman

+0

是的,我做到了。我認爲錯誤不在NSUserdefaults中。我認爲它在設置紋理。我應該怎麼做呢?我有一個玩家節點,紋理取決於他們在第一個場景中選擇哪個角色。 –

+0

我不知道。您需要在您的問題中提供更多信息。你目前有什麼? – Gliderman

回答

1

我不知道你有你的print,但你需要之前打電話給你NSUserDefault設置呈現playScene。實際上,由於您參考了playScene,只需將choosePlayer變量移動到playScene,甚至不要使用NSUserDefaults。

因此在您的PlayScene.swift中有一個變量叫做choosePlayer。在UPDATE區域的代碼中,運行playScene.choosePlayer = 2(在let playScene = PlayScene(size: self.size)之後)而不是choosePlayer = 2

+0

非常感謝你的工作!對不起,我剛開始製作獨立式應用程序,而且我很缺乏經驗,所以非常感謝您堅持使用我。 –

+0

@PineAppleJuiceApps沒問題!樂意效勞。 – Gliderman