我一直在尝试各种不同的方法,使我的健康栏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;
}
}
答案 0 :(得分:0)
使用数学,我猜你在某处复制了那段代码,但你不知道如何使用它,健康意味着控制健康栏的水平:
var health:Number = 0;
var fullHealth:Number = 100;
healthBar.scaleX = health / fullHealth;
if(dog_mc.hitTestObject(deadRat_mc))
{
health += 25;
}
这就是你所需要的一切。