我创建了一个条形图,它在第 1 帧上是满的,然后在第 100 帧上是空的,我已经把它变成了补间形状。我想创建一个代码,当我按下某个按钮时,它会耗尽条形图,因此只要按住某个按钮,帧就会从 1 变为 100。
我正在考虑一种方法来做到这一点,但这似乎是不可能的。
var maxHP:int = 100;
var currentHP:int = maxHP;
var percentHP:Number = currentHP / maxHP;
我想让 percentHP var 等于条,所以当它达到 50 时,它将达到第 50 帧,依此类推。
这是解决这个问题的正确方法吗?
谢谢。
以下是我试图在下面修复的代码中使用的变量。此外,我正在创建的游戏有多个角色,所以我所指的栏位于几个电影剪辑中。
基本上,当角色双跳时,它正在飞行,并且条耗尽。一旦酒吧耗尽到 0(或当 PercentHP 为 0 时),那么它应该结束飞行。之后,我希望酒吧能够恢复到 100 加班。
var percentHP = Number(Bar.CBar.CMana_bar.currentFrame) / Number(100);
var gravityConstant:Number = 1;
var doubleJumpReady:Boolean = false;
var flyingJump:Boolean = false;
var upReleasedInAir:Boolean = false;
function loop(e:Event):void{
//Flying
if(upReleasedInAir == true){ // if the player releases the up arrow key
upReleasedInAir = false; // set the variable to true
}
if(doubleJumpReady == false){
doubleJumpReady = true;
}
} else { //if we are not touching the floor
ySpeed += gravityConstant; //accelerate downwards
//Flying
if(upPressed == false && upReleasedInAir == false){
upReleasedInAir = true;
//trace("upReleasedInAir");
}
if(doubleJumpReady && upReleasedInAir){
if(upPressed){ //and if the up arrow is pressed
flyingJump = true;
//trace("doubleJump!");
doubleJumpReady = false;
ySpeed = jumpConstant + 8; //set the y speed to the jump constant
gravityConstant = 0;
Bar.CBar.CMana_bar.play();
//trace(percentMP);
}
}
if(Bar.CBar.CMana_bar.currentFrame == 100 && percentHP == 0){
gravityConstant = 1;
Bar.CBar.CMana_bar.stop();
flyingJump = false;
doubleJumpReady = false;
}