AS2 (ActionScript 2) Проблема, заставляющая мой mc "прыгать" - PullRequest
0 голосов
/ 19 марта 2011
    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 Ответ

1 голос
/ 19 марта 2011

Вам необходимо ввести новую переменную для отслеживания скорости y. Затем, вместо увеличения y-позиции под действием силы тяжести каждого кадра, вам нужно увеличить y-скорость под действием силы тяжести. В конце каждого кадра вы можете увеличивать y-позицию на y-скорость.

Всякий раз, когда вы хотите прыгнуть, нужно установить отрицательную величину для скорости y.

псевдокод:

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