Есть еще другой клип, который мы подключаем, с идентификатором связывания grid. Этот клип служит лишь как контейнер для всех остальных клипов, которые мы подключаем. Таким образом, когда приходит время перезапустить игру, мы можем просто удалить контейнер – клип grid – и все плитки и монстры внутри него автоматически удаляются. Сетка создается снова с нуля.
Давайте взглянем на код ActionScript в слое Game Actions клипа game.
Код ActionScript, которого нет в функции
В кадре Game Actions есть несколько определенных функций. Но есть также несколько действий, которые не определены в функциях, поскольку они должны вызываться только один раз (в процессе инициализации игры для каждой игровой сессии). Вы найдете их в нижней части кадра. Они приведены ниже:
1 maxx =10;
2 maxz =10;
3 iso =new isometricAS(maxx,maxz);
4 buildWorld(maxx,maxz);
5 popup.swapDepths(10);
6 soundOn =true;
Первые две строки определяют размер сетки – десять плиток в направлении x и десять в направлении z. (Нет необходимости определять размер сетки в направлении y, потому что сетка лишь двумерная [x и z] и ее координата по y равна 0). Затем мы создаем новый экземпляр объекта isometricAS и назначаем ему ссылку с именем iso. В строке 4 мы вызываем функцию buildWorld(), который создает объекты, используемые для хранения информации об игре. Функция buildWord() вызывает функции, которые добавляют плитки и монстров. В строке 5 мы просто перемещаем всплывающий клип на глубину, которая больше любой другой. Таким образом, он не будет перекрыт клипом, который присоединяется в функции buildWord() (которая подключается на глубинах меньше чем 10).
onEnterFrame
Это простое событие onEnterFrame для данного клипа является тем самым, которое реально размещает персонажей на каждом ходу; в этом смысле это событие является «хлебом с маслом» для данной игры.
1 this.onEnterFrame =function(){
2 moveCharacter();
3 if (inPlay){
4 positionCharacter();
5 }
6 };
Функция moveCharacter() вызывается в каждом кадре