As3: Как я могу получить свой снаряд на дугу и вернуться обратно? - PullRequest
1 голос
/ 05 марта 2012

Мой снаряд начинает изгибаться, но затем бесконтрольно движется вправо и никогда не падает.Я не знаю, что не так.

Вот мои начальные переменные

private var gravity:Number = 9.8;
private var xVelocity:Number = 30;
private var yVelocity:Number = 30;
private var speedx:Number = xVelocity*Math.cos(Math.PI/180);
private var speedy:Number = yVelocity*Math.sin(Math.PI/180);

Вот как движется пуля (постоянно выполняется после создания)

bullet.x += speedx/10;
bullet.y -= speedy;
speedy -= gravity/10;

ИВот как пуля добавляется на экран

bullet.x = (player.getX() +(Math.cos((player.getRotation()+90)*Math.PI/180)));
bullet.y = (player.getY()+(Math.sin((player.getRotation()+90)*Math.PI/180)));

1 Ответ

0 голосов
/ 05 марта 2012

Я собираюсь выйти на конечности здесь.Я думаю, что вы перепутали свои координаты: ваше «вверх» на самом деле +x, а ваше «право» на самом деле +y.Таким образом, пуля начинает двигаться в направлении +x и продолжает двигаться в направлении +x («вверх»), падая все быстрее и быстрее в направлении +y («вправо»).И он падает к +y, а не -y, потому что именно так вы определили вещи - у вас есть еще один - там, чем вы, вероятно, предполагали.

Переключите ваши координаты и вседолжен выглядеть реалистично.

...