0

我正在使用 CCProgressTimer 为 HP 栏编写游戏。

以下是我添加 HP 条的代码:

_hpBar = [CCProgressTimer progressWithSprite:[CCSprite spriteWithFile:@"hp_bar.png"]];
_hpBar.type = kCCProgressTimerTypeBar;
_hpBar.barChangeRate = ccp(1, 0);       //  Y stays the same
_hpBar.midpoint = ccp(0, 0);
_hpBar.percentage = 100;
_hpBar.position = ccp(_hpBar.contentSize.width * scale / 2, self.contentSize.height + _hpBar.contentSize.height / 2 + 2);
[self addChild:_hpBar];

添加这是我增加HP的代码:

- (int)increaseHP:(int)amount {
    _life = MIN(_life + amount, 100);
    if (_life > 30) [_hpBar setSprite:[CCSprite spriteWithFile:@"hp_bar.png"]];
    [_hpBar setPercentage:_life];
    return _life;
}

但是当HP满了,即_life=100,然后我再增加一些HP,即调用[self increaseHP:1],HP条就会消失。

有人可以帮忙吗?

4

1 回答 1

0

因为百分比从 0 到 100 并且 >100% 的行为是未定义的(未保护)。

如果您的角色可以拥有(例如最大 250 HP),那么您需要计算角色拥有的生命值百分比。例如,如果他有 125 HP,那将是 50%。

于 2013-05-26T09:07:09.107 回答