2016-04-17 91 views
0

我正在嘗試更改sprite工具包中的用戶角色。更改用戶角色

我有兩個視圖,一個是Play視圖(實際的遊戲)和另一個視圖來選擇一個角色。

我希望用戶從角色視圖中選擇一個角色,以便在他/她可以使用之前選擇的角色玩的角色視圖中進行選擇。

所以我曾嘗試使用NSUserDefaults的依賴於這樣的角色,以節省一些:

 if self.nodeAtPoint(location) == self.poolBanner { 
      //change to pool ball 
      userDefaults.setInteger(1, forKey: "PBChange") 
      poolBanner.setScale(0.9) 
      print("Pool Ball selected") 
     } 
     if self.nodeAtPoint(location) == self.tumbleweedBanner { 
      //change the character to tumbleweed 
      userDefaults.setInteger(2, forKey: "TWChange") 
      tumbleweedBanner.setScale(0.9) 
      print("Tumbleweed Ball selected") 
     } 

這段代碼是從性格來看,當玩家選擇人物,他們想用

下面這段代碼是從播放視圖:

if TWNumber == 2{ 
     hero.texture = SKTexture(imageNamed: "Tumbleweed") 
     hero.size = CGSize(width: 60, height: 57) 
    } 
    else if PBNumber == 1 { 
     hero.texture = SKTexture(imageNamed: "PoolBall") 
     hero.size = CGSize(width: 60, height: 60) 
    } 

當我敲擊改變它停留在我所選用相同字符的字符。如果我選擇了poolBall,它會首次更改,然後將其更改爲tumbleweedBall它將保持不變。

我覺得像被重寫自己,但我不知道,如果新選擇如何忽略最後的圖片

+0

您應該從ibooks免費下載swift書,並可能會觀看paul heggarty的一些講座。使用xcode幫助選項卡中提供的文檔。您還應該觀看一些YouTube視頻以獲取基本信息。 Nsuserdefaults用於在退出並重新啓動應用程序時保存小數據。我也不是專家。 – jiminybob99

回答

0

步驟:

  1. 用戶選擇他們的性格這種代碼被稱爲:

    //Enum of possible characters, with their sprite texture names too. 
    enum GameCharacter: String { 
        case Tumbleweed = "Tumbleweed" 
        case PoolBall = "PoolBall" 
    } 
    
    func characterSelect(type: GameCharacter) { 
        let ud = NSUserDefaults.standardUserDefaults() 
        //Save the current character in User Defaults 
        ud.setObject(type.rawValue, forKey: "Current_Character") 
        ud.synchronize() 
    } 
    
    //When they choose the character: 
    characterSelect(.Tumbleweed) //Or Whatever character you have 
    
  2. 遊戲場景:負荷性質質地

    func loadCharacter() { 
        let ud = NSUserDefaults.standardUserDefaults() 
        if let currentCharacter = ud.objectForKey("Current_Character") as? String { 
         hero.texture = SKTexture(imageNamed: currentCharacter) 
        } else { 
         hero.texture = SKTexture(imageNamed: "Tumbleweed") 
        } 
    } 
    
    override func viewDidLoad() { 
        self.loadCharacter() 
    } 
    
相關問題