当对象发生碰撞时,在健康栏上更改scaleX的值

时间:2016-02-22 04:17:39

标签: actionscript-3 flash if-statement game-physics

我一直在尝试各种不同的方法,使我的健康栏scaleX在达到目标时逐渐增加25%。

到目前为止,我最接近的是使用else if语句。问题是actionscript通过else if语句运行并且不会停止,它会执行所有计算并在每次点击时使我的健康栏充满。我理解为什么会发生这种情况(其他if语句在AS3运行时变为真实)但我不知道如何阻止它。 任何帮助表示赞赏

var health:Number = 0;
var fullHealth:Number = 100;

healthBar.scaleX = health / fullHealth;

//collision

    if(dog_mc.hitTestObject(deadRat_mc)){
    deadRat_mc.visible=false;

      if (healthBar.scaleX==0){
         healthBar.scaleX =+.25;

        }
        else if (healthBar.scaleX==.25){
            healthBar.scaleX =+.50;
        }
        else if (healthBar.scaleX==.50){
            healthBar.scaleX =+.75;
        }
        else if (healthBar.scaleX==.75){
            healthBar.scaleX =+1;

        }

}

1 个答案:

答案 0 :(得分:0)

使用数学,我猜你在某处复制了那段代码,但你不知道如何使用它,健康意味着控制健康栏的水平:

var health:Number = 0;
var fullHealth:Number = 100;
healthBar.scaleX = health / fullHealth;
if(dog_mc.hitTestObject(deadRat_mc))
{
    health += 25;
}

这就是你所需要的一切。