帮助类的现场场景

时间:2015-02-17 23:49:32

标签: ios objective-c variables sprite-kit storekit

我正在开发一款游戏货币的iOS游戏。我有一个SKSceneStore,它有一个显示玩家游戏内财富的SKLabelNode。当用户导航到SKSceneStore时(从保存的NSUserDefaults值),该标签的值被初始化。

对于用户购买更多游戏内货币,我有一个帮助类,IAPHelper(来自Ray Wenderlich的教程:http://www.raywenderlich.com/21081/introduction-to-in-app-purchases-in-ios-6-tutorialhttp://www.raywenderlich.com/23266/in-app-purchases-in-ios-6-tutorial-consumables-and-receipt-validation),其中一个方法是“provideContentForProductIdentifier :( NSString *)productIdentifier“。这是在成功交易后调用的方法,我将XXX游戏内货币添加到玩家的游戏内财富中。

我的问题是我不确定如何使用用户的游戏内财富(在SKSceneStore中)“刷新”SKLabelNode。我怎样才能做到这一点?我提出的一个原始解决方案是我可以使用以下代码重新加载整个SKSceneStore:

SKSceneStore *reinitializeStore = [SKSceneStore alloc]init];
SKTransition *reveal = [SKTransition fadeWithDuration:0.5];
[reinitializeStore.view presentScene:reinitializeStore transition:reveal];

但是,此代码不起作用。

2 个答案:

答案 0 :(得分:0)

你不能只是从场景中删除标签,创建一个带有更新财富的新标签,然后将其添加回场景吗?

答案 1 :(得分:0)

我设法找到了更优雅的解决方案并使用了以下代码:

in" provideContentForProductIdentifier:(NSString *)productIdentifier"

[[NSNotificationCenter defaultCenter] postNotificationName:@"reinitializeStore" object:self];

然后在我使用的SKSceneStore中

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(powerUpHUD) name:@"reinitializeStore" object:nil];