1

我创建了一个条形图,它在第 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;
        }
4

2 回答 2

0

如果您询问如何通过编号到达帧,请使用以下MovieClip.gotoAndStop方法:

loaderBar.gotoAndStop(percentHP);
于 2012-10-07T02:44:01.407 回答
0

您应该做的是将 MOUSE_DOWN 和 MOUSE_UP 事件附加到您的按钮。在stop();您的栏的第 1 帧中输入,然后使用 MOUSE_DOWN 和 MOUSE_UP 在您的栏播放或停止动画。类似于以下内容:

button.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
button.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
function mouseDownHandler(e:Event):void{
bar.play();
} 
function mouseUpHandler(e:Event):void{
bar.stop();
percentHP = Number(bar.currentFrame) / Number(100); //If you still need to know the percent
} 
于 2012-10-07T09:05:54.153 回答