Javascript-форум (https://javascript.ru/forum/)
-   Учебные материалы (https://javascript.ru/forum/study/)
-   -   Чуть-чуть материала по коллизии JS (https://javascript.ru/forum/study/80048-chut-chut-materiala-po-kollizii-js.html)

MOT 21.04.2020 21:46

Чуть-чуть материала по коллизии JS
 
Здравствуйте! Не могли бы вы подкинуть несколько ссылок по коллизии объектов JS. Хотелось бы изучить эту вещь, но не могу найти нормальную статью. На том же MDN не так много инфы по теме. Прошу помочь вас ;)

рони 21.04.2020 22:22

MOT,
https://javascript.ru/forum/css-html...tml#post514244

Rise 24.04.2020 15:29

MOT,
Смотря для чего, может тебе коллизии точка-прямоугольник достаточно.

MOT 25.04.2020 21:58

Цитата:

Сообщение от Rise (Сообщение 523366)
MOT,
Смотря для чего, может тебе коллизии точка-прямоугольник достаточно.

Нет, всё немного сложнее. Материал от рони хорош, но там объекты создаются рандомно. Я же хотел просмотреть урок какой-нибудь годный, в котором говорится про коллизию div'ов. Я делаю игру, в которой смысл сводится к обходу препятствий (врагов-div). И тут снова сложность - div, отвечающий за игрока состоит из большего количества div. Тут уж никакой фантазии и никаких знаний не хватит. Не могли бы вы показать пример кода, похожего на моё описание?

Rise 27.04.2020 02:06

Цитата:

Сообщение от MOT
но там объекты создаются рандомно.

Когда элементы создаются скриптом это называется динамически. Рандомно это псевдослучайное что-то.

Но разница в том, что там canvas, а у тебя div.
В HTML есть три контейнера для интерактивной анимированной графики, это тэги: <canvas>, <svg>, <div>.

Они значительно отличаются:
<canvas> не имеет разметки (видимой), имеет специальные JS-функции (Canvas API) для рисования (CSS отсутствует).
<svg> имеет XML-разметку, имеет специальные SVG-элементы и атрибуты для рисования (CSS не обязательно).
<div> имеет HTML-разметку, имеет обычные HTML-элементы для рисования (CSS обязательно).

Получается три способа:
1. <canvas> / JS
2. <svg> / CSS? / JS
3. <div> / CSS / JS

Цитата:

Сообщение от MOT
про коллизию div'ов.

Коллизия это пересечение фигур: прямоугольник-прямоугольник, круг-круг, прямоугольник-круг, и тд. Эти фигуры определяют некую область на игровом объекте, object.area=rect, при этом она не обязана соответствовать форме объекта. Далее эти области попарно проверяются на предмет коллизии при каждой итерации игрового цикла.

Цитата:

Сообщение от MOT
состоит из большего количества div.

Область коллизии может состоять из нескольких простых фигур, object.area=[rect,circle], или одной сложной фигуры, object.area=polygon. Более сложные фигуры влияют на производительность игры.

Цитата:

Сообщение от MOT
показать пример кода

Для игр используй canvas, туториал, его для этого и ввели в HTML5, иначе много геморроя тебя ждет в будущем.

Captain 13.05.2020 15:54

Спасибо. Как раз этот материал и искал. :stop:


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