2012-03-02 11 views
0

私は、スペースバーを押すたびに箇条書きを実行する文字を持つサイドスクロールで作業しています。問題は、文字の方向に箇条書きを移動していることです(左または右)に向いています。ActionScript 3 - 箇条書きの変更方向を文字で開始する

私は、文字が向いている方向を教えてくれるいくつかのブール変数を持っています:walkRight |ウォーキングレフトの場合、ウォーキングレット== trueなら、弾丸が+ 10、ウォーキングレフト== true、弾丸= 10になります。

問題は、左に向かって発射すると弾丸が左に移動し、しかし私が右折するとすぐに、同じ弾丸が右に動き始める。ここで

はAS3コード(すべてのフレーム)の抜粋です:

if(gamepad.fire2.isPressed){ 
    // initiate bullet 
    var bullet = new Bullet(); 
    bullet.x = _player.x; 
    bullet.y = _player.y; 
    /*_boundaries.*/addChild(bullet); 
    bullets.push(bullet); 
} 

for each(var bullet in bullets){ 
    if(walkingRight || idleRight || jumpingRight){ 
    bullet.x += 10; 
    trace("Bullet - Moving Right"); 
    } 
    else if(walkingLeft || idleLeft || jumpingLeft){ 
    bullet.x -= 10; 
    trace("Bullet - Moving Left"); 
    } 
} 

私は必ずその大学のプロジェクトのために、このから任意の助けをいただければ幸いです。

おかげ

+3

:次に、あなたのコードを変更

dynamic class BulletWrapper{ private var bullet:DisplayObject = null; public function BulletWrapper(bullet:DisplayObject){ this.bullet = bullet; } public function getBullet():DisplayObject{ return this.bullet; } } 

まずこのクラスを作成します主要なキャラクターに関する情報とは関係なく、個々の弾丸の方向を別々に保存するカスタム "myBulletClass.direction"クラスまたはベクトル/配列のいずれかにあります。 – ToddBFisher

答えて

1

あなたはこのような何かを試すことがあります。弾丸はあなたがすべき作成されると

if(gamepad.fire2.isPressed){ 
    // initiate bullet 
    var bullet = new Bullet(); 
    bullet.x = _player.x; 
    bullet.y = _player.y; 
    /*_boundaries.*/addChild(bullet); 
    var wrapper:BulletWrapper = new BulletWrapper(bullet); 
    //storing as much information as related to bullet animation 
    wrapper.walkingStep = 0; 
    wrapper.log = "No move"; 
    //------------------------------- 
    if(walkingRight || idleRight || jumpingRight){ 
     wrapper.walkingStep = 10; 
     wrapper.log = "Bullet - Moving Right"; 
    }else if(walkingLeft || idleLeft || jumpingLeft){ 
     wrapper.walkingStep = -10; 
     wrapper.log = "Bullet - Moving Left"; 
    } 
    //-------------------------- 
    bullets.push(wrapper); 
} 

for each(var wbullet:BulletWrapper in bullets){ 
    var bullet = wbullet.getBullet(); 
    bullet.x += wbullet.walkingStep; 
    trace(wbullet.log); 
} 
関連する問題