Понедельник, 25 Ноября 2024, 02:45

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Mlook оружия
RandallДата: Пятница, 26 Ноября 2010, 20:05 | Сообщение # 1
участник
Сейчас нет на сайте
Помогите с формулой, вычисляющей угол, на который вращается винтовка в руках персонажа платформера в зависимости от положения мыши.

Использую вот такую формулу:

image_angle=arcsin(abs(mouse_y-d.y)/sqrt(sqr(mouse_x-d.x)+sqr(mouse_y-d.y)));

либо, что проще, arctan и делю одно на другое

но в том-то и дело, что функция синуса и косинуса справедлива для обоих значений угла. Получается баг при вычислении обратной функции.
я изобретаю велосипед, верно? подскажите, пожалуйста. Очень не хочется терять время на перерой всего.


1. Adventure Mouse - мини-аркада про мыш и его друга сыр
2. Герои Реконструкции и Страйкбола - тематическая пошаговая стратегия
3. Dangerous Dave 5: Fansequel - трибьют на Dangerous Dave
Всё здесь http://zvizdez.ru/download.php?list.1


Сообщение отредактировал Randall - Пятница, 26 Ноября 2010, 20:05
noTformaTДата: Пятница, 26 Ноября 2010, 20:24 | Сообщение # 2
Ukrainian independent game developer
Сейчас нет на сайте
Используй планиметрию, и формулы Пифагора:

1) Находиш растояние от мыши до игрока по оси х.
2) Находиш растояние от мыши до игрока по оси y.
3) Теперь зная два катета можеш найти угол между катетом и прилигающей к нему гипотенузе, через арктангенс2. smile


@noTformaT
RandallДата: Пятница, 26 Ноября 2010, 20:40 | Сообщение # 3
участник
Сейчас нет на сайте
А квадрант он учитывает?

Учитывает, уже вижу, спс!

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

Специально для тех, кто будет ковыряться в этой теме после меня - результат нужно умножать на 60 и вычитать 90, получим корректный угол


1. Adventure Mouse - мини-аркада про мыш и его друга сыр
2. Герои Реконструкции и Страйкбола - тематическая пошаговая стратегия
3. Dangerous Dave 5: Fansequel - трибьют на Dangerous Dave
Всё здесь http://zvizdez.ru/download.php?list.1


Сообщение отредактировал Randall - Пятница, 26 Ноября 2010, 20:55
noTformaTДата: Пятница, 26 Ноября 2010, 20:56 | Сообщение # 4
Ukrainian independent game developer
Сейчас нет на сайте
Quote (Randall)
Специально для тех, кто будет ковыряться в этой теме после меня - результат нужно умножать на 60 и вычитать 90, получим корректный угол

Функция атан2 возвращает значение в радианах, что бы перевести их в градусы используйте следующию общепринятую принятую формулу = 360 * значение_поворота_в_радианах / (2 * Пи)
smile


@noTformaT
RandallДата: Пятница, 26 Ноября 2010, 22:49 | Сообщение # 5
участник
Сейчас нет на сайте
Уже почитал в источнике, еще раз спасибо smile

1. Adventure Mouse - мини-аркада про мыш и его друга сыр
2. Герои Реконструкции и Страйкбола - тематическая пошаговая стратегия
3. Dangerous Dave 5: Fansequel - трибьют на Dangerous Dave
Всё здесь http://zvizdez.ru/download.php?list.1
noTformaTДата: Пятница, 26 Ноября 2010, 22:53 | Сообщение # 6
Ukrainian independent game developer
Сейчас нет на сайте
Quote (Randall)
Уже почитал в источнике, еще раз спасибо

Источник?


@noTformaT
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг