[26]: Реакция на столкновение прямоугольников + Законы сохранения

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

Вот мы и приблизились вплотную к самому сложному уроку.:) Следующему! :D А пока что этот) В этом уроке я делаю зависимое от кадров определение столкновений прямоугольников и реакции между объектами прямоугольной формы. Они не обязательно должны быть прямоугольные. Просто должны двигаться в одной плоскости. Потому что здесь используются законы сохранения импульса и кинетической энергии.

Эти законы вообще простые, и мы использовать будем только конечный результат, выведенный из формул. Надеюсь, если в школе не понимали, поймёте тут )
Пример: Человек массой 50 кг бежит навстречу человеку с массой 100 кг. Скорость одинакова. Предположим что удар упругий, т.е. нет поглощения энергии, то человек с массой 50 кг отлетит со скоростью явно большей, чем бежал :D А у толстячка скорость только станет меньше. Если бы массы были одинаковы, то они бы поменялись значениями скоростей.

Вспоминаются мне разрушители мифов с серией, где они выясняли одинаков ли удар 2х машин, которые навстречу едут с 60 км/ч, и удар 1 машины со стеной. :) Это вам “на подумать”. :) )

Ну так вот, законы сохранения энергии:
26_2

Зная законы сохранения, и умея определять пересечение прямоугольников, мы можем сделать нормальную реакцию прямоугольников ;)

Обо всём этом (и не только этом) смотрите в видеоуроке ниже:

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

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

Комментарии
  1. Alexandrn

    Приветствую!!!
    Снова я со своим “дубом”.
    Вопрос: Есть код на AS 2.0 Две пары объектов сталкиваются друг с другом (1-й со 2-м, 3-й с 4-м) путём перетаскивания. При условии, когда произойдут два независимых столкновения, то выполнится переход на главной сцене в кадр (n) Нужно тот же способ написать в as 3.0

    function checkHit_func() {
    if (_root.object1.hitTest(_root.object2) and _root.object3.hitTest(_root.object4)) {
    _root.gotoAndStop(132);
    }
    }

    Спасибо, автору! Я не видел ещё кого-то, кто так подробно и чётко (без лишней воды) делал уроки на as 3.0

    • admin

      Благодарю :) Видимо тебе нужно вот это ↓ :)
      function checkHit_func() {
      if (object1.hitTestObject(object2) && object3.hitTestObject(object4)) {
      gotoAndStop(132);
      }
      }

  2. Alexandrn

    Спасибо! Глянем!

    • Alexandrn

      Не работает!
      Объекты таскаются, но перехода в другой кадр не происходит.
      Пробовал упростить, два объекта оставил на сцене в коде. Ничего! И ошибок не выдаёт.((

      • admin

        у меня работает! Ты, видимо, саму функцию не вызвал…
        Она вызывается командой checkHit_func();
        Если не получится, скинь исходник и я посмотрю.

  3. Alexandrn

    Хорошо, даю ссылку http://rusfolder.com/40775903
    Может, то что я не в классах делаю код, а в кадрах, так и не срабатывает?!

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

    • admin

      Проблема в том, что ты так и не понял мой тот комментарий.
      “Ты, видимо, саму функцию не вызвал… Она вызывается командой checkHit_func();”
      У тебя нет ни одного места, где она бы вызывалась.
      http://yadi.sk/d/4weLh9SpR3tNc
      По вопросам монетизации тебе сюда http://gamedevblogs.ru/ :) Изучай )

  4. Alexandrn

    Спасибо, спасибо ОГРОМНОЕ тебе, друг!!! Выручил.
    Обидно делать игру в as2, когда есть as3.
    Если я тебя ещё не достал, то потом пойду в уроки про звуки. Там тоже клин. Всё делал по уроку, а не пашет. Ну это потом. А пока занимайся разработкой уникальных и интереснейших игрушек. )) Вот я ещё в школьном возрасте делал всякие. Только не на компе, а на бумаге, картоне, в общем настольные. Тратил порой уйму времени, а когда шла тестировка готового результата, то игры хватало на пару раз, а дальше она становилась скучной. А были такие, что и сейчас (на 4-м десятке) хочется играть ))
    Если не секрет, покажешь хоть одно своё игровое творение?
    Ещё раз СПАСИБО!

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

Ваш 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="">