Objective c 如何在iPhone上为射击游戏创建伤害栏?

Objective c 如何在iPhone上为射击游戏创建伤害栏?,objective-c,Objective C,我有一个关于游戏开发的问题。我正在为iPhone开发一款游戏。在游戏中,有一个伤害栏,显示玩家对敌人造成的伤害。我使用的技术是使用两张图片。 一个是充满完整伤害的伤害条,一个是黑色的,但和伤害条大小相同。这就像掩蔽。每当收到伤害值时,我会缩短黑条。但这里的问题是,我用来计算损伤的方法与我用来画黑条的方法是不同的。每次它获得伤害值时,我如何频繁地绘制它?请帮帮我,非常感谢 -(void)damageTaken { totalDamage = 0; for (uint i = 0 ;

我有一个关于游戏开发的问题。我正在为iPhone开发一款游戏。在游戏中,有一个伤害栏,显示玩家对敌人造成的伤害。我使用的技术是使用两张图片。 一个是充满完整伤害的伤害条,一个是黑色的,但和伤害条大小相同。这就像掩蔽。每当收到伤害值时,我会缩短黑条。但这里的问题是,我用来计算损伤的方法与我用来画黑条的方法是不同的。每次它获得伤害值时,我如何频繁地绘制它?请帮帮我,非常感谢

-(void)damageTaken
{
    totalDamage = 0;
    for (uint i = 0 ; i< [bodyParts count]; i++) {
        RagdollBodypart *part = (RagdollBodypart *)[bodyParts objectAtIndex:i];
        totalDamage += part.damage;
    }
    [[NSNotificationCenter defaultCenter] postNotificationName:DAMAGE_TAKEN object:nil];
}

要使视图重新绘制自身,可以使用[view setNeedsDisplay],这将触发视图的drawRect方法


因此,您可以直接在DamageTake中调用,也可以通过侦听您发送的通知的方法调用。

谢谢您的回复。我现在解决了这个问题。我所做的只是创建了另一个tick函数。我将在一秒钟内调用该函数60次,与我的帧速率相同,然后在其中绘制遮罩。我的损坏条现在看起来很好。但也谢谢你,我认为你的方式很好

 float damage = [[GameController instance].engine.enemies totalDamage];
                        float scale = (float)(1400 -damage)/(float)1400;
                        [damageSprMask setScaleY:scale];
                        //[damageSprMask setPosition:ccp(20,150)];
                        [damageSprMask setPosition:ccp(20,150 +((1- damageSprMask.scaleY)*damageSpr.contentSize.height)/2)];