1

as3を使用してFlashでゲームを作成しています。これが私の問題です。ゲームの最初の部分は、ボールを板の上にx秒間保持することです。板の上でボールを転がすことができましたが、ボールのy値を考慮する方法がわかりません...これが私のコードです。

function ballRollLeft(event:Event):void{
    ball.x=ball.x+plank.rotation;
    //ball.y++;
    if(ball.x<332.7){
        var yVel:Number = plank.rotation;
        var yAcc:Number = plank.rotation;

        ball.addEventListener(Event.ENTER_FRAME, move3);
        function move3(event:Event):void{
            ball.y-=yVel;
            yVel+=yAcc;
            }
    }
}

function ballRollRight(event:Event):void{
    ball.x=ball.x+plank.rotation;
    //ball.y=ball.y-plank.rotation;
    if(ball.x>572.7){
        var yVel:Number = plank.rotation;
        var yAcc:Number = plank.rotation;

        ball.addEventListener(Event.ENTER_FRAME, move3);
        function move3(event:Event):void{
            ball.y+=yVel;
            yVel+=yAcc;
            }
        }
}

ボールを左右に転がす働きをしますが、yの値は変わらず、ボールがエッジに近づくと飛び降ります。

これに関する助けをいただければ幸いです。ありがとうございました

4

1 に答える 1

0

ball.y、yVel、およびyAccをトレースし、それらがNaNまたは0でないことを確認します。yVelおよびyAccの初期化で値を強制します。

于 2012-11-14T16:30:44.683 に答える