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上)
答案 0 :(得分:1)
您需要引入一个新变量来跟踪y速度。然后,不是每帧都通过重力递增y位置,而是需要通过重力递增y速度。在每帧结束时,您可以通过y速度增加y位置。
无论何时你想要跳跃,都需要将y速度设置为负值。
伪代码:
dy+=GRAVITY;
if(jump pressed)
dy=-JUMP_SPEED;
y+=dy;