0

这是我的问题,我是编程新手,我正在学习一个教程只是为了学习随机的东西。到目前为止,除了重力之外,我已经完成了所有工作。当我运行程序时,我的播放器是浮动的,但是当我按下“向下”键时,重力才会生效。我不知道为什么。

if(leftBumping){
    if(xSpeed < 0){
        xSpeed *= -0.5;
    }
}

if(rightBumping){
    if(xSpeed > 0){
        xSpeed *= -0.5;
    }
}

if(upBumping){
    if(ySpeed < 0){
        ySpeed *= -0.5;
    }
}

if(downBumping){
    if(ySpeed > 0){
        ySpeed *= 0.0;
    }




} 
else {
        ySpeed += gravityConstant;
}

我对碰撞有痕迹,它们都工作正常。如果我在开放空间中,它不会检测到碰撞,并且当触摸墙壁时,输出显示我在。我已经修改了这些线路好几个小时了。请帮忙

这也可能有帮助

if(aPressed){
    xSpeed -= speedConstant;

} else if (dPressed){
    xSpeed += speedConstant;

}

if (wPressed){
    ySpeed -= speedConstant;

} else if(sPressed){
    ySpeed += speedConstant;
}
if(leftBumping){
    if(xSpeed < 0){
        xSpeed *= -0.5;
    }
}
4

1 回答 1

0

你需要坚持这一点:

ySpeed += gravityConstant;

进入一个每帧调用的函数,如下所示:

this.addEventListener(Event.ENTER_FRAME, onEnterFrame)

private function onEnterFrame(e:Event):void
{
    ySpeed += gravityConstant;
}

如果这种情况发生得很快,您要么需要降低重力常数,降低 fps,要么使用计时器而不是 enterframe。

于 2013-07-24T09:31:00.587 回答