Actionscript 3 在对象碰撞时更改健康栏上scaleX的值
我一直在尝试各种不同的方法,使我的健康栏scaleX在达到目标时递增25% 到目前为止,我得到的最接近于else if语句。问题是actionscript在else-if语句中运行,并且没有停止,它执行所有的计算,并在每次我点击某个内容时使我的健康栏充满。我理解为什么会发生这种情况(如果AS3中的语句变为真,则其他语句变为真),但我不知道如何阻止它。 谢谢你的帮助Actionscript 3 在对象碰撞时更改健康栏上scaleX的值,actionscript-3,flash,if-statement,game-physics,Actionscript 3,Flash,If Statement,Game Physics,我一直在尝试各种不同的方法,使我的健康栏scaleX在达到目标时递增25% 到目前为止,我得到的最接近于else if语句。问题是actionscript在else-if语句中运行,并且没有停止,它执行所有的计算,并在每次我点击某个内容时使我的健康栏充满。我理解为什么会发生这种情况(如果AS3中的语句变为真,则其他语句变为真),但我不知道如何阻止它。 谢谢你的帮助 var health:Number = 0; var fullHealth:Number = 100; healthBar.sca
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;
}
}
使用数学,我猜你在某个地方复制了代码,但你不知道如何使用它,健康意味着控制健康栏的级别:
var health:Number = 0;
var fullHealth:Number = 100;
healthBar.scaleX = health / fullHealth;
if(dog_mc.hitTestObject(deadRat_mc))
{
health += 25;
}
这就是你所需要的。我用了很多方法。你的帖子是我尝试的第一件也是最明显的事情,它没有完成任何比例变化,只是停留在0。你不需要先增加运行状况,然后再设置scalex吗?只要此代码在enter帧或计时器中运行,顺序就无关紧要了。