Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.08.2018, 12:37
Интересующийся
Отправить личное сообщение для delgus Посмотреть профиль Найти все сообщения от delgus
 
Регистрация: 27.07.2018
Сообщений: 21

canvas столкновение объектов
Есть такой вот код.

https://jsfiddle.net/xdLnw4zg/4/

На строке 120 - функция которую я написал для столкновения объектов - listenCollision(используемая внутри функция distance объявлена вверху, она расчитывает расстояние между шарами). Она работает, но при столкновении на высокой скорости шариков, они прилипают друг к другу. Есть варианты как с этим бороться?
Ответить с цитированием
  #2 (permalink)  
Старый 16.08.2018, 12:56
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,672

Где listenCollision вызывается?
Ответить с цитированием
  #3 (permalink)  
Старый 16.08.2018, 13:05
Интересующийся
Отправить личное сообщение для delgus Посмотреть профиль Найти все сообщения от delgus
 
Регистрация: 27.07.2018
Сообщений: 21

Rise,
В initDependents - 70 строка, в value - находится функция. начинаю понимать что это ужасно
Ответить с цитированием
  #4 (permalink)  
Старый 16.08.2018, 13:11
Интересующийся
Отправить личное сообщение для delgus Посмотреть профиль Найти все сообщения от delgus
 
Регистрация: 27.07.2018
Сообщений: 21

вот так работает вроде)

https://jsfiddle.net/xdLnw4zg/22/
Ответить с цитированием
  #5 (permalink)  
Старый 16.08.2018, 13:33
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,672

delgus,
но шары в жизни так не отскакивают прямо назад всегда
Ответить с цитированием
  #6 (permalink)  
Старый 16.08.2018, 14:33
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,010

именно
сейчас код рассчитан только на самый элементарный кейс - когда два шара двигаются навстречу друг другу, с одинаковыми скоростями, и их центры едут по одной и той же прямой (центральное соударение).

для общего случая надо будет упороться с формулами, используя закон сохранения импульса. А если делать совсем как в жизни, то придется ещё и моменты импульсов добавить - шары при нецентральном соударении могут менять скорость вращения. Там полнейший ад получается
Ответить с цитированием
  #7 (permalink)  
Старый 16.08.2018, 15:07
Кандидат Javascript-наук
Отправить личное сообщение для Strongman Посмотреть профиль Найти все сообщения от Strongman
 
Регистрация: 22.03.2016
Сообщений: 132

Delgus, позвольте спросить, извините за назойливость. Что Вы сделали, чтобы код заработал?
Ответить с цитированием
  #8 (permalink)  
Старый 16.08.2018, 15:15
Интересующийся
Отправить личное сообщение для delgus Посмотреть профиль Найти все сообщения от delgus
 
Регистрация: 27.07.2018
Сообщений: 21

Rise,
Alexandroppolus,
Я хотел сделать самый простой вариант столкновения, поэтому пренебрег физикой. Для таких вещей,конечно,надо углубляться в формулы или брать готовые движки)
Ответить с цитированием
  #9 (permalink)  
Старый 16.08.2018, 15:18
Интересующийся
Отправить личное сообщение для delgus Посмотреть профиль Найти все сообщения от delgus
 
Регистрация: 27.07.2018
Сообщений: 21

Strongman,
Добавил проверку на направление движения, но всех проблем конечно это не решило, при разных скоростях и радиусах шары все равно залипают
Ответить с цитированием
  #10 (permalink)  
Старый 16.08.2018, 15:20
Интересующийся
Отправить личное сообщение для delgus Посмотреть профиль Найти все сообщения от delgus
 
Регистрация: 27.07.2018
Сообщений: 21

* Но код и так работал, просто совсем некорректно. А сейчас менее неккоректно, но все равно очень криво)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработка игры: отрисовка карты - CANVAS vs SVG Роман Андреевич Элементы интерфейса 1 04.05.2018 09:41
canvas столкновение элементов accept Общие вопросы Javascript 0 28.01.2015 20:50
Повтор фото (getUserMedia(),HTML5 Canvas) aspex Элементы интерфейса 1 27.12.2014 16:46
Столкновение объектов css_js Общие вопросы Javascript 9 12.01.2013 14:10
Создание экземпляра Canvas не затрагивая HTML Tails Общие вопросы Javascript 2 09.03.2012 13:55