AS2(ActionScript 2)让我的mc“跳”的问题

时间:2011-03-18 21:33:18

标签: flash actionscript-2

    onClipEvent(enterFrame){
    speed = 8;
    jump = 20;
    gravity = 10;

    // gravity
    this._y+=gravity;
    _root.cam._y = this._y;

// movement
    if(Key.isDown(68)){
        play();
        _root.cam._x += speed;
        this._x += speed;
        _xscale=90
       }
     if(Key.isDown(65)){
         play();
        _root.cam._x -= speed;
        this._x -= speed;
        _xscale=-90
       } 

       if(Key.isDown(Key.SPACE)){
        this._y -= jump;
        jump--;
       }


      if(this, hitTest(_root.wall)){
          this._y-=(gravity);
       }

}   //END 

所以我试图制作一个电影片段,每当我点击空间时,我都会“跳”。它应该在我击中太空时减小跳跃速度,但它似乎没有这样做。谁能告诉我为什么? (这里的代码直接在我的mc上)

1 个答案:

答案 0 :(得分:1)

您需要引入一个新变量来跟踪y速度。然后,不是每帧都通过重力递增y位置,而是需要通过重力递增y速度。在每帧结束时,您可以通过y速度增加y位置。

无论何时你想要跳跃,都需要将y速度设置为负值。

伪代码:

dy+=GRAVITY;
if(jump pressed)
    dy=-JUMP_SPEED;
y+=dy;