2016-04-17 88 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() 
    } 
    
相关问题