0

HPバーにCCProgressTimerを使用してゲームを書いています。

以下は、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 を増やす、つまり [自己増加 HP:1] を呼び出すと、HP バーが消えます。

誰でも助けてもらえますか?

4

1 に答える 1

0

パーセンテージは 0 から 100 まで変化し、100% を超える動作は定義されていない (保護されていない) ためです。

キャラクターが最大 250 の HP を持つことができる場合、キャラクターの健康状態のパーセンテージを計算する必要があります。たとえば、彼の HP が 125 の場合、50% になります。

于 2013-05-26T09:07:09.107 に答える