【问题标题】:Coin Score Logic硬币得分逻辑
【发布时间】:2014-08-18 03:22:14
【问题描述】:

我创建了一个类似于小鸟的游戏,但添加了硬币元素。我有高分工作,但我不知道如何使硬币得分工作。我希望在玩家重新开始游戏时将硬币分数与之前的最佳硬币分数相加。目前,我的代码只显示之前最好的硬币分数,不会在玩家重新开始游戏时单独添加硬币分数。如何更改代码以显示收集的总硬币而不是最佳硬币分数?

- (void)didLoadFromCCB {
    [self loadSavedState];
}

-(BOOL)ccPhysicsCollisionBegin:(CCPhysicsCollisionPair *)pair hero:(CCNode *)hero coin:  (CCNode *)coin {
    _coins++;
    if (_coins > _bestCoin) {
        _bestCoin = _coins;
        [self saveState];
    }
    [self loadSavedState];
    return TRUE;
}

//write for coin
- (void)saveState {
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    [prefs setInteger:_bestCoin forKey:@"bestCoin"];
    [prefs synchronize];
}

//read for coin
- (void)loadSavedState {
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    _bestCoin = [prefs integerForKey:@"bestCoin"];
    _coinLabel.string = [NSString stringWithFormat:@"%d",_bestCoin];
}

【问题讨论】:

  • 你的问题不清楚。你想要什么,在标签上显示硬币数量?你在哪里增加你的硬币?
  • 是的,我想在标签上显示总硬币数。我正在增加我在 ccPhysicsCollisonBegin 中的硬币数量。

标签: ios objective-c cocos2d-iphone nsuserdefaults spritebuilder


【解决方案1】:

如果您想在标签上添加硬币数量,只需在您要增加硬币数量的地方写下这一行。

_coinLabel.string = [NSString stringWithFormat:@"%d",_bestCoin];

希望这会有所帮助.. :)

【讨论】:

    【解决方案2】:

    因此,如果我了解您希望收集到的硬币在每次游戏中都保留下来,而不是表现得像高分一样。如果是这种情况,您的问题是每次玩游戏时当前的硬币计数都是从 0 开始的。这意味着您在 CCPhysicsCollision 中的 if 语句不会被调用,直到您在一个会话中收集超过 _bestCoins。

    将您的 loadSavedState 更改为:

    - (void)loadSavedState {
        NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
        _bestCoin = [prefs integerForKey:@"bestCoin"];
        _coinLabel.string = [NSString stringWithFormat:@"%d",_bestCoin];
        _coins = _bestCoin;
    }
    

    【讨论】:

      猜你喜欢
      • 2016-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多