Гравитация работает только после нажатия клавиши AS3
Вот моя проблема, я новичок в программировании, и я следую учебному пособию, чтобы узнать случайные вещи. До сих пор я получил все, чтобы работать, кроме гравитации. Когда я запускаю программу, мой игрок плывет, но когда я нажимаю только клавишу "вниз", гравитация начинает действовать... Я не могу понять, почему.
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;
}
}
1 ответ
Вы должны придерживаться этого бита:
ySpeed += gravityConstant;
в функцию, которая вызывается каждый кадр, как это:
this.addEventListener(Event.ENTER_FRAME, onEnterFrame)
private function onEnterFrame(e:Event):void
{
ySpeed += gravityConstant;
}
если это происходит быстро, вам нужно будет либо уменьшить свою гравитационную постоянную, либо уменьшить частоту кадров, либо использовать таймер, а не энтерфрейм.