Это установившаяся практика обнаружения столкновения (вернитесь назад к событию onEnterFrame). Затем мы активизируем стартовую доску. Помните, что мы устанавливаем ссылку на стартовую доску в строке 51 функции buildMap()? Хорошо, но зачем? Таким путем мы можем легко активировать или деактивировать ее.
Один момент относительно деактивации линии состоит в том, что она активируется сама, когда значение ее счетчика достигает 5. Это было добавлено, чтобы дать шару достаточно времени (после столкновения с ракеткой) улететь подальше, прежде чем искать другие столкновения с этой же ракеткой. Также обратите внимание, что в действительности есть две правых стенки – дальняя правая стена (справа от поршня) и правая стена, которая является краем основной части стола. Эта внутренняя правая стена и является тем, что мы реально рассматриваем как правую стенку. В строке 5 мы устанавливаем rightWallOn в false. Когда она равна false, мы не обнаруживаем столкновения с этой стеной. Это для того, чтобы не дать пинболу пройти через нее при запуске. После того, как пинбол прошел через нее, мы устанавливаем rightWallOn в true. Это делается в функции checkForWalls().
Далее мы устанавливаем переменную с именем shotYet в значение false. Эта переменная устанавливается в true, как только шар отскакивает от стартовой доски. Когда она равна true, поршень не будет реагировать на нажатие клавиши пробела. В строках 7-12 мы устанавливаем начальную векторную скорость шара в 0 и помещаем шар поверх поршня. Затем мы устанавливаем уровень мощности поршня. Его минимальная мощность равна 0, а максимальная мощность равна 30. Это соответствует начальной скорости шара в момент запуска.
flip()
Эта функция принимает два параметра, which и dir. Параметр which сообщает, какую из ракеток повернуть, левую или правую. Параметр dir определяет направление поворота – вверх или вниз.
Эта функция работает просто. Когда ракетка движется вверх или вниз, функция должна перерисовать линию ракетки в памяти таким образом, что шар будет способен отреагировать на новый поворот ракетки