私はヒーローが実行され、障害に直面し、ジャンプとスライドで障害物を進めるランニングゲームを作っています。どのようにアクティブなマルチキーボールas3で
ヒーローはユーザーDを押しても実行され、固定小数点まで実行されますが、ヒーローがもう一方のボタンを実行すると問題が発生すると、W = jump
とS = slide
は機能しません。
ヒーローの実行中にこの2つのボタンが機能します。あなたがelse if
ステートメントを使用しているため
は、ここに私のコード
import flash.display.Stage;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.display.MovieClip;
import flash.events.Event;
kim.gotoAndStop("hero Stand");
var dPressed:Boolean = false;
var aPressed:Boolean = false;
var jumping:Boolean = false;
var sPressed:Boolean = false;
stage.addEventListener(KeyboardEvent.KEY_DOWN , keyDownHandaler);
stage.addEventListener(KeyboardEvent.KEY_UP , KeyUpHandaler);
stage.addEventListener(Event.ENTER_FRAME , gameLoop);
function keyDownHandaler(Devent:KeyboardEvent):void
{
if (Devent.keyCode == Keyboard.D)
{
dPressed = true;
}
else if (Devent.keyCode == Keyboard.S && !jumping && !sPressed)
{
sPressed = true;
}
else if (Devent.keyCode == Keyboard.W && !jumping && !sPressed)
{
jumping = true;
}
function KeyUpHandaler (Uevent:KeyboardEvent):void
{
if (Uevent.keyCode == Keyboard.D)
{
//dPressed = false; (i commented this so that hero don't stop running)
//hero.gotoAndStop("hero Stand");
}
else if(Uevent.keyCode == Keyboard.W)
{
jumping = false;
hero.gotoAndStop("heroStand");
}
else if(Uevent.keyCode == Keyboard.S)
{
sPressed = false;
hero.gotoAndStop("hero Stand");
}
}
function gameLoop(Levent:Event):void
{
if (dPressed)
{
hero.x += 10;
hero.gotoAndStop("hero Run");
}
else if(jumping)
{
hero.y -= 15;
hero.x += 10;
hero.gotoAndStop("hero Jump");
}
else if(sPressed) {
hero.x += 10;
hero.gotoAndStop("hero Slide");
}
}
私の7つのフレームジャンプアニメーションと5つのフレームスライドアニメーションがhero.gotoAndStop( "hero Jump")を再生していないので、ジャンプやスライドのクリップが再生されていません。 and hero.gotoAndStop( "ヒーロースライド");それはちょうど最初のフレームに行き、それのようにとどまり、終了後にそれは実行に戻る。どのようなアイデアが問題ですか? –
goToAndPlayを使用しないgoToAndStop –
申し訳ありません私は何度も同じ結果を試しました –