cocos 2dゲームでは、ヒーローのライフを更新するために3つのハートスプライトを使用します。ヒーローが1つのライフを失った場合は、1つのハートを非表示にする必要があります。
以下のコードを使用していますが、正しく機能していません。助けてください。
- (void)updateLives {
int i = _lives;
[self livess:(int)i];
}
- (void)livess:(int)ii {
CGSize winSize = [CCDirector sharedDirector].winSize;
heart1=[CCSprite spriteWithFile:@"heart.png"];
heart2=[CCSprite spriteWithFile:@"heart.png"];
heart3=[CCSprite spriteWithFile:@"heart.png"];
[heart1 setPosition:ccp(winSize.width/2*1.3, winSize.height * 0.9)];
[self addChild:heart1 z:0];
[heart2 setPosition:ccp(winSize.width/2*1.1, winSize.height * 0.9)];
[self addChild:heart2 z:0];
[heart3 setPosition:ccp(winSize.width/2*0.9, winSize.height * 0.9)];
[self addChild:heart3 z:0];
if (ii==3) {
NSLog(@"%d",ii);
}
else if (ii==2)
{
NSLog(@"%d",ii);
[heart3 setVisible:NO];
} else if (ii==1)
{
NSLog(@"%d",ii);
[heart3 setVisible:NO];
[heart2 setVisible:NO];
}
else
{
}
}
注:上記のコードでは、nslogは正しい値を出力しています。たとえば、1,2