2013-12-19 3 views
0

У меня возникли проблемы с попыткой выработать пулю в 1 из 8 направлений.Противопожарная пуля в направлении движения

Игрок может указывать только в направлениях компаса 0, 45, 90, 135, 180 и т.д.

Так что мне нужно, это формула, которую можно использовать в spawnEntity, чтобы послать пулю в направлении игрок сталкивается с постоянной скоростью.

Я пробовал это;

sinAngle = Math.cos(90) * 1000; 
    cosAngle = Math.sin(90) * 1000; 

    bulletX = (this.pos.x); 
    bulletY = (this.pos.y); 
    return { x: bulletX, y: bulletY, sin: sinAngle, cos: cosAngle }; 

Звонок подобен этому;

trajectory = this.calculateAngle(); 
    ig.game.spawnEntity(EntityBullet, trajectory.x, trajectory.y, { vel: { x: trajectory.sin, y: -trajectory.cos } }); 

Но все в радианах, и я хочу, чтобы оно было в градусах компаса.

ответ

1

Если все, что вы хотите сделать, это преобразование градусов в радианы, то вы просто используете: d * (π/180), где d - это градусы.

Если вы также хотите сказать направление компаса (как на севере, юге, востоке, западе), создать перечислимое число и преобразовать их в градусы и использовать функцию градусов-радиан.

+0

Это, без класса java, является именно тем, что у меня уже есть и которое не работает. Я пытаюсь обеспечить математические функции градусами компаса, но они ожидают радианов. Мне нужна функция, которая будет вычислять x и y на основе компаса градусов – griegs

+0

Так вы в порядке с использованием углов вместо того, чтобы каким-либо образом представлять N, S, E, W и т. д.? Потому что это довольно тривиально. Фиксирующий вопрос ... – Jwosty

+0

У меня есть это сейчас, но 0 градусов компас выходит, как 0 и 180 компас выходит как 270. flipped и reverse. я могу программировать вокруг этого, но на самом деле не чувствую, что это хорошее решение. – griegs

0

Прошло некоторое время с тех пор, как я сделал какое-либо программирование игры, но вы можете использовать MathHelper.ToDegrees для преобразования ваших радианов в градусы.

+0

У меня действительно есть степени, но я думаю, что cos и sin ожидают радианов – griegs

+1

О, ладно. Вместо этого это будет ToRadians. Удачи вам в вашей игре! –

+0

спасибо за вашу помощь. и игра, это скорее упражнение, чем настоящий проект. – griegs

Смежные вопросы