Xcode 如何在Swift SpriteKit中保存游戏中的“硬币”?

Xcode 如何在Swift SpriteKit中保存游戏中的“硬币”?,xcode,swift,Xcode,Swift,我有这个游戏,用户收集硬币,我希望他们能够保存它们,并使用应用程序内购买硬币。我该怎么做?我可以使用NSUserDefaults进行此操作还是其他操作?谢谢我用这个来保存高分: EDITED var coinDefaults = NSUserDefaults() var coinScore = defaults.integerForKey("coinScore") if(coins > 0) { coi

我有这个游戏,用户收集硬币,我希望他们能够保存它们,并使用应用程序内购买硬币。我该怎么做?我可以使用NSUserDefaults进行此操作还是其他操作?谢谢我用这个来保存高分:

                   EDITED
    var coinDefaults = NSUserDefaults()
    var coinScore = defaults.integerForKey("coinScore")

    if(coins > 0)
    {
        coinDefaults.setInteger(coins, forKey: "coinScore")
    }
    var showCoins = coinDefaults.integerForKey("coinScore")

    coinLabel.text = String(showCoins)



    }

是的,您可以使用不同的选项来保存数据:nsUserDefault、写入文件并存储文件、coredata或将Web服务器与数据库一起使用

如果有人知道如何破解你的应用程序,他会使用你的应用程序中的3种方法,这就是为什么许多大型游戏使用互联网服务器来检查用户购买的内容


但是,很少有人入侵你的游戏,如果他这样做了,他无论如何也不会付钱。因此,请继续使用nsuserdefaults,在我看来,它很简单,也很好。

是的,您有不同的选项来保存数据:nsuserdefaults、写入文件并存储文件、coredata或将Web服务器与数据库一起使用

如果有人知道如何破解你的应用程序,他会使用你的应用程序中的3种方法,这就是为什么许多大型游戏使用互联网服务器来检查用户购买的内容

但是,很少有人入侵你的游戏,如果他这样做了,他无论如何也不会付钱。因此,请继续使用nsuserdefaults,在我看来,这很简单,也很好。

重置coinScore

NSUserDefaults.standardUserDefaults().removeObjectForKey("coinScore")
加载保存的分数

var coinScore =  NSUserDefaults.standardUserDefaults().integerForKey("coinScore")

var coins = 5
更新coinScore

if coins > coinScore  {
    coinScore = coins
    NSUserDefaults().setInteger(coinScore, forKey: "coinScore")
}

println( NSUserDefaults().integerForKey("coinScore").description )

coins += 20

if coins > coinScore  {
    coinScore = coins
    NSUserDefaults().setInteger(coinScore, forKey: "coinScore")
}

println( NSUserDefaults().integerForKey("coinScore").description )
重新设置硬币分数

NSUserDefaults.standardUserDefaults().removeObjectForKey("coinScore")
加载保存的分数

var coinScore =  NSUserDefaults.standardUserDefaults().integerForKey("coinScore")

var coins = 5
更新coinScore

if coins > coinScore  {
    coinScore = coins
    NSUserDefaults().setInteger(coinScore, forKey: "coinScore")
}

println( NSUserDefaults().integerForKey("coinScore").description )

coins += 20

if coins > coinScore  {
    coinScore = coins
    NSUserDefaults().setInteger(coinScore, forKey: "coinScore")
}

println( NSUserDefaults().integerForKey("coinScore").description )

我有这个密码,但它不能保存硬币。我把它放在op里。硬币+=20是干什么的?@swifter22它和硬币=硬币+20是一样的。我不明白为什么它要在硬币上加20……难道不是每次用户收集硬币时它都应该从0开始,然后向上。@swifter22你把你想要的值放进去了。。。。。。。。从nsuserdefaults中检索值,然后将想要的值添加到变量中,然后将结果返回到nsuserdefaults。我有此代码,但它没有保存硬币。我把它放在op里。硬币+=20是干什么的?@swifter22它和硬币=硬币+20是一样的。我不明白为什么它要在硬币上加20……难道不是每次用户收集硬币时它都应该从0开始,然后向上。@swifter22你把你想要的值放进去了。。。。。。。。从nsuserdefaults中检索值,然后将想要的值添加到变量中,然后将结果返回到nsuserdefaults。它不会添加到总硬币中,只是重置为0。我该如何解决这个问题?它不会增加硬币总数,只是重置为0。我该怎么解决这个问题?我不需要硬币重置。我希望这样,如果用户收集了4枚硬币,然后再次玩游戏并获得5枚硬币,那么应该将这些硬币添加到一起并保存它们。您可能不需要重置这些硬币,但您需要知道如何重置以备不时之需。您只需在保存之前进行求和。我不需要重置这些硬币。我希望这样,如果用户收集了4枚硬币,然后再次玩游戏并获得5枚硬币,那么它应该将这些硬币添加到一起并保存它们。您可能不需要重置它,但您需要知道如何重置,以防万一。您只需在保存之前对其进行求和