1

フレーム 1 でいっぱいになり、フレーム 100 で空のバーを作成し、シェイプ トゥイーンにしました。特定のボタンを押すとバーがなくなるコードを作成したいので、特定のボタンが押されている限り、フレームは 1 から 100 に達するまで続きます。

どうにかしようかと考えていたのですが、無理そうです。

var maxHP:int = 100;
var currentHP:int = maxHP;
var percentHP:Number = currentHP / maxHP;

percentHP 変数をバーと等しくしたいので、50 になるとフレーム 50 に到達します。

これは正しい方法ですか?

ありがとう。


以下は、修正しようとしているコードで使用されている変数です。また、私が作成しているゲームには複数のキャラクターが含まれているため、参照しているバーは 2 つのムービークリップ内にあります。

基本的にキャラクターが二段跳びをすると飛んでいてバーが減っていきます。バーが 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 イベントを追加する必要があります。バーのフレーム 1 に入力しstop();、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 に答える