Эта функция размещает стены и объекты в памяти и затем запускает игру.
Событие onEnterFrame
В нижней части кадра Actions находится событие onEnterFrame. Это событие обрабатывает вычисление новых координат шара, обнаружение столкновений, перехват нажатий на клавиши и рисование нового положения шара на экране.
Эта функция представлена ниже:
1 this.onEnterFrame =function(){
2 //now=getTimer();
3 if (inPlay){
4 if (animate){
5 animatePlunger();
6 }
7 collided =false;
8 getTempPositions();
9 captureKeys();
10 if (!collided){
11 bankCollisionDetect();
12 }
13 if (!collided){
14 bumperCollisionDetect();
15 }
16 checkForWalls();
17 render();
18 patch();
19 }
20 //trace(getTimer()-now);
21 };
Для начала, обратите внимание на две строки кода ActionScript, которые были закомментированы – строки 2 и 20. Они служат для тех же целей, что и в игре 9-шаров. Если их активизировать, они печатают в окне трассировки значение времени, затраченного на каждый кадр. С помощью такой трассировки вы можете лучше анализировать эффективность вашего кода ActionScript. Если на каждый кадр тратится слишком много времени, то вы знаете, что вам нужно упростить код ActionScript или возможно удалить несколько объектов из сцены.
Основная часть кода ActionScript в этом событии содержится в большом блоке if, который просто проверяет, равно ли значение inPlay true. Если она равна true, выполняются операторы внутри блока; в ином случае ничего не происходит. В строках 4-6 мы проверяем, равна ли переменная с именем animate значению true. Если да, это означает, что мы предполагаем анимацию поршня. Когда поршень достиг цели назначения (при выстреле), animate устанавливается в false. Далее мы устанавливаем переменную с именем collided в false. При обнаружении столкновения с линией, окружностью или ракеткой мы устанавливаем collided в true. Мы хотим избежать многочисленных обнаружений столкновений и реакций в одном кадре, и установкой этой переменной мы можем сделать это