Автор Тема: Помощь в определении столкновения  (Прочитано 3957 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Segaman

  • Пользователь
  • Сообщений: 3240
  • Пол: Мужской
  • Blast Processing!
    • Youtube
    • Просмотр профиля
добрый день. нужна помощь.
есть два круглых обьекта, нужно расщитать между ними расстояние
не используя никаких доп, функций. так как прогаю на асме и на сегу.
проблема стоит в том, что расстояние вычислить я смог. а угол не знаю как.
угол нужен для определения направления отскока обьектов друг от друга.
я решил использовать треугольник, ниже схема

Оффлайн GalaxyBot_00

  • Ушел с форума
  • Сообщений: 6042
  • Пол: Мужской
  • Surrender at 20
    • Просмотр профиля
Re: Помощь в определении столкновения
« Ответ #1 : 25 Июнь 2012, 12:40:02 »
90 градусов

Оффлайн GManiac

  • Пользователь
  • Сообщений: 1284
    • Просмотр профиля
Re: Помощь в определении столкновения
« Ответ #2 : 25 Июнь 2012, 17:22:38 »
Ты что, бильярд пишешь? Почитай про игроделанье бильярдов. По-моему, там не всё так тривиально.
А угол ты не узнаешь, пока не определишь направление движения шаров. Если один шар поедет влево, то они не столкнутся, и чему равен угол столкновения.... фу ты, направления отскока?

А так угол равен

Оффлайн Segaman

  • Пользователь
  • Сообщений: 3240
  • Пол: Мужской
  • Blast Processing!
    • Youtube
    • Просмотр профиля
Re: Помощь в определении столкновения
« Ответ #3 : 25 Июнь 2012, 17:46:30 »
я тоже так думал, но проблема в том что у моих обьектов есть скорочть и смещение.
скорость определяется уголом направления, а смещение это скорость полученная от удара.
так вот может возникнуть такая ситуация, что обьект идет по направлению вверх, а откинуло его вправо и он ударил другой обьект.
в итоге по вашей логике ударенный обьект отскочит вверх а не вправо <_<
давайте дело серьезное игра нормульная. на 4 игроков.
в Special Thanks добавлю

Оффлайн GManiac

  • Пользователь
  • Сообщений: 1284
    • Просмотр профиля
Re: Помощь в определении столкновения
« Ответ #4 : 25 Июнь 2012, 17:54:02 »
Если у объекта есть собственный двигатель, то ты путаешь мгновенную скорость и скорость, получаемую за счёт силы, т.е. ускорения. То, что он идёт вверх, это хорошо, он так идёт за счет своего ДВС. А то, что его откинуло вправо, это так, возмущения. Его мгновенная скорость становится направленной вправо и вверх. Вот чтобы определить угол столкновения, тебе надо определить мгновенную скорость именно в МОМНЕТ СТОЛКНОВЕНИЯ.

И оттолкнутый объект может пойти не вправо, а вообще почти вниз, если возмущённый шар двигался вправо и коснулся верхнего края оттолкнутого. Говорю тебе, почитай про бильярдодельанье. Или астероидоделанье.

Оффлайн Mr2

  • Пользователь
  • Сообщений: 1595
  • Пол: Мужской
  • Free roaming sorcerer
    • Facebook
    • Просмотр профиля
Re: Помощь в определении столкновения
« Ответ #5 : 25 Июнь 2012, 18:45:20 »
Вот такие у менядогадки:
Находим точку столкновения "A".
Вычисляем маршрут через центр шара(M1, M2) до границы экрана, сохраняем, затем перемещяем объект по маршруту.
« Последнее редактирование: 25 Июнь 2012, 19:02:29 от Mr2 »

Оффлайн Segaman

  • Пользователь
  • Сообщений: 3240
  • Пол: Мужской
  • Blast Processing!
    • Youtube
    • Просмотр профиля
Re: Помощь в определении столкновения
« Ответ #6 : 27 Июнь 2012, 09:55:49 »
Mr2, попробуюу по твоему методу.
спасибо за помощь :)
сам бы долго наверно доходил до этого

Оффлайн Mr2

  • Пользователь
  • Сообщений: 1595
  • Пол: Мужской
  • Free roaming sorcerer
    • Facebook
    • Просмотр профиля
Re: Помощь в определении столкновения
« Ответ #7 : 27 Июнь 2012, 15:31:28 »
Mr2, попробуюу по твоему методу.
Это не метод, а теория. Так что за работоспособность автор отвецтвенности не несёт. :)
спасибо за помощь :)
:hi:
сам бы долго наверно доходил до этого
Ты просто наверно в бильярд не играл. Дело логики, куда ударить чтобы попало куда надо. ;)
Лучше почитай как это всё работает, перед тем как заняться реализацией.