(Позже в этой главе мы будем работать с менее статичными объектами.)
Реакции объект-стена
Столкновение объект-стена (ласково называемое мяч-стена) является простейшим типом столкновения для программирования. Представьте снова пример с теннисным мячом. Когда теннисный мяч отскакивает от стены, он отражается от стены с такой же скоростью, с какой ударился в стену. (Поскольку это эластичное столкновение – нет никакой потери энергии на столкновение, и, следовательно, нет потери скорости.) Это для нас хорошие новости, потому что это означает, что когда мы обнаруживаем столкновение со стеной, мы можем просто изменить скорость объекта на противоположную. Обратите внимание, что мы изменили бы только скорость составляющей скорости, которая перпендикулярна стене, как показано на иллюстрации ниже.
WALL
СТЕНА
Before Collision
До столкновения
After Collision
После столкновения
affected
измененная
unaffected
неизмененная
Давайте посмотрим на практический пример. Откройте файл pong1.fla в папке Chapter06. Это незавершенная версия очень простой игры, Теннис. В теннисе мяч двигается по экрану и вам нужно удержать его от покидания пределов экрана с вашей стороны (слева). Имеются две ракетки, которые двигаются по экрану в вертикальном направлении. Одна ракетка находится у левой границы игровой области, а другая у правой границы игровой области. Левая ракетка контролируется игроком (это вы), а правая ракетка управляется компьютером с помощью простого скрипта AI (рассмотренного в Главе 9 «Искусственный интеллект»). В сцене есть экземпляр клипа мяча (внутри клипа игрового поля - board); он квадратной формы, но по-прежнему называется мячом. Точка привязки этого клипа находится в левом верхнем углу. Есть обнаружение столкновения между мячом и ракетками, и между мячом и верхом и низом игрового поля. Если мяч сталкивается с верхом или низом игрового поля, то его скорость по y меняет знак. Мы не собираемся рассматривать большую часть кода ActionScript в этом файле