Виявлення зіткнень

Автор: Jeff Thompson.

Переклад: Манойлов Андрій.

Зіткнення об’єктів лежить в основі більшості ігрових подій та користувацьких інтерфейсів. Більярдні кийки стикаються з більярдними кулями, зомбі врізаються у стіни, а Маріо приземляється на платформи й топче черепах. Навіть щось таке просте, як натискання кнопки (прямокутник) курсором (точка), є зіткненням.

У цій книзі пояснюються алгоритми, що стоять за цими зіткненнями, на прикладі використання базових фігур, таких як круги, прямокутники та лінії, щоб ви могли застосувати їх у своїх власних проєктах.

Цей переклад має частково оновлені сторінки та перероблені приклади коду з використанням p5.js. Якщо у вас виникли проблеми при користуванні сайтом чи пропозиції, будь ласка, опублікуйте їх у репозиторії перекладу проєкту.

Оригінальну книгу та код до неї ви можете знайти за наступними посиланнями: сайт книги, вихідний код книги та прикладів.

Приклади коду на p5js ви можете знайти в поточному репозиторії

Інші мої онлайн-переклади можна знайти за адресою https://manoylovac.github.io

Якщо ви готові почати, тоді можете сміливо переходити до Змісту

Що тут розглядається?

Ця книга розглядає зіткнення між точками, кругами, прямокутниками, лініями, багатокутниками та трикутниками. Ці приклади мають бути максимально доступними та зрозумілими. Безумовно, існують швидші та ефективніші способи виявлення цих зіткнень, але ця книга націлена бути дружнього та викладати відповідні принципи з використанням простої математики.

Кожен розділ містить опис алгоритму зіткнення (колізії) та інтерактивний приклад, створений за допомогою p5.js. Ви можете переглянути вихідний код для всіх прикладів разом з цією книгою на GitHub.

Примітка! Якщо на мобільному пристрої у вас чомусь не спрацьовують інтерактивні приклади, спробуйте сайт на комп’ютері.

Що тут не розглядається?

Як і в будь-якій книзі, у даній тематиці набагато більше корисного матеріалу, ніж можна було б висвітлити. Деякі речі не обговорюються і залишаються поза увагою, оскільки їх математика стає надто складною. Тривимірний простір тут не зачіпається. Колізії еліпсів, які здаються досить легкими, насправді дуже складні.

Якщо існує конкретна колізія, яка тут не охоплена, і яка може бути корисною, надішліть відповідний запит автору оригінальної книги або, ще краще, надішліть робочий приклад, який ви створили! Якщо ви маєте корисний тематичний матеріал, який підходить до даної книги, тоді я додам його до даного перекладу.

Помітили проблему?

Якщо ви знайшли код, що виконується неправильно, алгоритм, який не зовсім коректно пояснено, або помилку, будь ласка, повідомте про це в GitHub-репозиторії цього проєкту. Дякую за допомогу!

Навігація

Добре, напишемо трохи коду! Щоб перейти до наступного розділу натисніть посилання внизу сторінки або скористайтеся стрілками вгорі. Посилання на зміст книги з виявлення зіткнень завжди можна знайти у верхній частині сторінки.

Далі: Зміст