Подсчет того, насколько должны измениться координаты x и y, используя скорость и угол - PullRequest
0 голосов
/ 19 января 2020

У меня есть 2 значения - скорость и угол наклона тела. Мне нужно создать функцию, которая использует эти два аргумента, чтобы подсчитать, сколько она должна двигаться по оси X и оси Y в refre sh.

Пример:

public Vector getMoveVectorFromSpeedAndAngle(float speed, float angle) {
  //code I need
}

myBody.x = getMoveVectorFromSpeedAndAngle(myBody.speed, myBody.angle).x;
myBody.y = getMoveVectorFromSpeedAndAngle(myBody.speed, myBody.angle).y;

А какой у вас вопрос?

Как создать такую ​​функцию?

Как вы храните угол? В радианах или в градусах?

Я использую градусы, но если это необходимо, я могу переключиться на радианы.

1 Ответ

2 голосов
/ 19 января 2020

Использование радианов:

public Vector getMoveVectorFromSpeedAndAngle(float speed, float angle) {
    float x = speed * (float)Math.cos(angle);
    float y = speed * (float)Math.sin(angle);
    return new Vector(x, y);
}

И вам, вероятно, нужно увеличить координаты вашего тела на заданную величину, а не присваивать ей:

myBody.x += getMoveVectorFromSpeedAndAngle(myBody.speed, myBody.angle).x;
myBody.y += getMoveVectorFromSpeedAndAngle(myBody.speed, myBody.angle).y;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...