Я думаю, вам нужно удалить эти строки:
if(yspeed>0){yspeed-=accel}
if(yspeed<0){yspeed+=accel}
...
...
...
if(xspeed>0){xspeed-=accel}
if(xspeed<0){xspeed+=accel}
Причина, по которой он вычитается из логики над ним
Относительно ускорение , вы, вероятно, неЯ не хочу увеличивать ваше значение скорости на константу «2».Я бы поместил это в переменную или статический объект, объявленный выше (так что вы можете изменить его только в одном месте, а не везде, где он используется.
В заключение, чтобы получить этот эффект «ускорения», вы должны увеличить скорость умножениемна долю.
Примерно так:
if(isDown==true && yspeed<maxspeed){yspeed *= 1.05}
Или со статической постоянной
public static const MOVEMENT_SPEED:int = 1.05;
...
...
...
if(isDown==true && yspeed<maxspeed){yspeed *= MOVEMENT_SPEED}