最近、cocos2d の最新バージョンで CCProgressTimer クラスが CCProgressNode に置き換えられていることを発見しましたが、次のコードを実装しようとすると、progressNode に何も起こりません。最新のメソッドをすべて使用しました。これはすべて gamePlay クラスで行われます これがノードの定義方法です。
CCProgressNode *_healthBar;
float _life;
これがsetUpメソッドです
- (void)initializeHealthBar {
self->_healthBar = [[CCProgressNode alloc] init]; // This wasn't there before, but thought it might be the memory allocation problem,
// _health is the code connection between sprite builder and Xcode.
self->_healthBar = [CCProgressNode progressWithSprite:_health];
[_healthBar setType:CCProgressNodeTypeBar];
[_healthBar setPercentage:_life];
[_healthBar setBarChangeRate:ccp(0.1,0.1)];
_healthBar.position = _health.position;
// So the _healthBar turns out positioned correctly, because _health is already positioned in sprite builder
[_contentNode addChild:_healthBar];
}
これは、ヘルスバーの変更を呼び出す方法です...(動作します、ヘルスバーが枯渇しています...)
-(void) hit {
if(_healthBar.percentage > 0)
{
self->_life -= 34;
self->_healthBar.percentage -= 34;
}
if (self->_healthBar.percentage <= 0 && ![_myHero isGameOver]) {
self->_healthBar.percentage = 0;
[_myHero isGameOver: TRUE];
[self gameOver];
}
}