[25]: Реакция на столкновение “Окружность-Линия”

Приветствую вас, ребята и девчонки :) Сегодня продолжается серия уроков по реакциям на столкновения в action script 3.0. :) Расписывать подробно я  как обычно не буду, всё ооочень чётко изложено в видеоуроке. Здесь я распишу лишь алгоритм на основе которого всё работают.

В этом уроке значит есть реакция на столкновение “Окружность-Линия” и “Окружность-Угол линии” для полноты реакции линии.

Скрипты, которые написаны в книгах меня вообще удивляют (О_о ), смотришь как крутой автор делает игру, а там косяк на косяке, то шар пролетит сквозь доску, то неправильная реакция. Зачем рассказывать как определять независимые от кадров столкновения, чтобы потом делать столкновение без столкновения объектов… Так же нет использования углов… Почему? Ведь если есть гравитация, то шар точно пролетит мимо.

Убил 3 дня на попытку сделать универсальный код для физ.пазла. Это в принципе реально сделать только с помощью дебаггера, чтобы можно было отследить каждую строчку кода. Просто, делаешь-делаешь, начинаешь тестировать и на 50 разе выявляешь косяк, например, когда есть тройное столкновение, копаешь-копаешь, и оказывается сам флеш неправильно рассчитывает некоторые моменты с ошибкой в 0.1 и меньше. Или допустим шар может прилипнуть к стене при очень маленькой скорости. Исправляешь эти косяки, появляются другие, допустим есть противоречащие, поэтому приходиться вносить новые условия. И так будет продолжаться долго. Тут точно нужно знать когда, что отключить и куда что перенести. Для этого нужен не сколько опыт, сколько пошаговое долгое тестирование и продумывание каждого шага.

Однако, если вы новичок, то вам н…фик это не надо!)) Почему, потому что для игр с гравитацией и кривыми линиями вполне подходят обычные библиотеки типа box2d, quickbox, или конструкторы. Вы сэкономите нервы и время. Единственное когда вам нужен свой движок, это когда у вас в игре очень большие скорости! К таким играм относится бильярд, но в нем нет гравитации к нашей радости. Потому что использование box2d там неуместно, так как шары будут влетать в стену, а если шар ударить у края стола в стену, он вообще улетит за стол))

Вот картинка того, что нужно нам провернуть чтобы сделать реакцию окружности с линией :)
25_1

Ну что ж, в программе почти 300 строк кода, и смысла писать реферат нету, смотрите видео :)

Исходник: yadi.sk/d/DjcLxB9rF48j4
Код ActionScript 3.0 из урока:

Всё подробно рассказано в видео :) Если будут какие-либо вопросы, пишите в комментариях к видео. Надеюсь, данный урок по реализации скорости в action script 3.0 в программе adobe flash, поможет вам в разработке игр. :)

Комментарии
  1. Михаил

    Спасибо Вам за уроки! Настоящий клад, такую информацию очень трудно найти и разобраться новичку. Большой респект!:)

  2. Денис

    А каким макаром увеличит затухание , в этом коде стоит его увеличить, начинает глючить, при малых скоростях шара он вылазит за границы линий ?
    за границы

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">