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 回答