我正在开发一个实现健康栏的游戏。健康栏是一个 1px x 1px 的 CCSprite,然后使用我在这里找到的方法调整到我需要它的大小。使用这种方法可以很好地调整条的大小,但我希望根据剩余的生命值来改变条的颜色。这是我用来调整大小的方法。
-(void) takeDamage:(double)damage {
currentHP -= damage;
if( currentHP > 0) {
double percentage = (double)currentHP/ (double)maxHP;
double width = (self.contentSize.width * (3.0f/4.0f)) * percentage;
if (percentage <= 0.2f) {
CCTexture2D * tex = [[CCTextureCache sharedTextureCache] addImage:@"hp_red.png"];
[bar setTexture:tex];
} else if( percentage <= 0.45f) {
CCTexture2D * tex = [[CCTextureCache sharedTextureCache] addImage:@"hp_yellow.png"];
[bar setTexture:tex];
}
[self resizeSprite:bar toWidth:width toHeight:self.contentSize.height/15];
}
[nums setString:[NSString stringWithFormat:@"%i/%i", currentHP, maxHP]];
}
我正在做的纹理更改是我从 SO 获得的其他东西,它改变了精灵的图像(到另一个 1px x 1px 的图像,除了它是黄色或红色而不是绿色)。问题是精灵只有一半是黄色的,另一半是黑色的,如下所示。
如果您查看“Abraxol”的健康栏,您会看到我所说的奇怪的半黄半黑效果。