Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   самонаводка в игре (https://javascript.ru/forum/misc/24911-samonavodka-v-igre.html)

Раед 18.01.2012 18:51

самонаводка в игре
 
Пишу игру на JS. Нужно сделать самонаводку. Снаряд-шар должен двигаться в сторону другого объекта. Подскажите, как высчитать координаты.

B@rmaley.e><e 18.01.2012 19:23

Координаты чего? Чьи координаты Вы знаете?

Раед 18.01.2012 22:57

Цитата:

Сообщение от B@rmaley.e><e (Сообщение 151269)
Координаты чего? Чьи координаты Вы знаете?

известны текущие координаты снаряда(определены через стили) и собственно координаты объекта, к которому летит снаряд. Нужно в интервале(, рекурсией или как нибудь ещё) изменять координаты снаряда, постоянно направляя его к объекту.

B@rmaley.e><e 18.01.2012 23:20

Используйте setInterval для изменения состояния сцены.

Касательно подсчёта координат: вычесть из радиус-вектора цели радиус-вектор снаряда, отнормировать результат, умножить на модуль скорости и прибавить к радиус-вектору снаряда.

Раед 19.01.2012 18:22

Извините, не совсем понял, что такое радиус-вектор

B@rmaley.e><e 19.01.2012 23:21

Википедия про радиус-вектор.

А вообще, для написания графической игры строго рекомендуется знание линейной алгебры и аналитической геометрии. Писать игру без этих знаний — гиблое дело.

Джэксон 21.05.2012 16:48

Писать игру на javascript само по себе не очень удобно. Я бы для этого по старинке выбрал бы ActionScript.

B@rmaley.e><e 21.05.2012 16:50

Цитата:

Сообщение от Джэксон
Писать игру на javascript само по себе не очень удобно.

Аргументируйте.

Джэксон 21.05.2012 22:35

Цитата:

Сообщение от B@rmaley.e><e (Сообщение 175760)
Аргументируйте.

Могу аргументировать это тем, что большинство игр написано на ActionScript. И так как я предполагаю люди не стали бы специально выбирать более сложный вариант написания игры, а выбрали бы тот что полегче.

9xakep 21.05.2012 22:50

А разве ActionScript не старая технология? Не лучше ли юзать канвас?


Часовой пояс GMT +3, время: 11:50.