Иллюстрированный самоучитель по Flash-games


Создание кода - часть 2


while (true) {

fox = int(Math.Random()*7);

if (_root["fox"+fox]._currentFrame == 1) { break;

}

}

// Начинаем анимацию лисы.

_root["fox"+fox].gotoAndPlay(2);

// Вычисляем момент появления следующей лисы.

nextFox = getTimer()+timeBetweenFoxes;

}

}

}

Функцию onClipEvent (mouseDown) из игры "Поймай лису" необходимо изменить, учесть условия игры "Подстрели лису". Прежде всего, в качестве активной точки курсора будут использоваться координаты клипа "cursor", а не реальные координаты курсора мыши, которые с обновлением кадра могут немного измениться. Затем в функции проверяется. попал ли пользователь по какому-нибудь из семи клипов. Если один из клипов поражен, в клипе "fox" внутри пораженного клипа осуществляется переход к кадру "hit" - пользователь видит, что попал в лису. Значение переменной score увеличивается в случае поражения лисы, значение переменной shotsLeft уменьшается в любом случае.
Игра заканчивается, когда с помощью функции onClipEvent (enterFrame) перед созданием новой лисы обнаруживается, что у игрока не осталось выстрелов. Ролик завершается не сразу после последнего выстрела, а через одну - две секунды.

onClipEvent (mouseDown) {

// Показываем анимацию выстрела.

_root["cursor"].gotoAndPlay("blast");

// Определяем координаты курсора.

x = _root._root["cursor"]._x;

y = _root._root["cursor"]._y;

// Проверяем, в какую лису попал пользователь,

for (i=0; i<7; i++) {

// Проверяем на попадание только "высунувшихся" лис.

if (_root["fox"+i]["fox"]._currentFrame <= 1) {

// Проверяем, попал ли пользователь

//в какую-либо из лис.

if (_root["fox"+i].hitTest(x, y, false)) {

// Показываем, что попал.

_root["fox"+i].fox.gotoAndPlay("hit");

// Увеличиваем счет.

score++;

}

}

}

// Уменьшаем число оставшихся выстрелов.

shotsLeft--;

// Обновляем счет, отображаемый на экране.

_root.showScore = "Score:"+score;

_root.showShotsLeft = "Shots Left:"+shotsLeft;

}

Данный код также задает переход клипа, содержащего курсор, к кадру "blast", анимация вспышки продолжается в течение нескольких кадров, затем ролик возвращается к кадру 1. Даже если игрок не попал в лису, он видит, что выстрел был сделан.
Следующая функция, onClipEvent(unload), запускается перед исчезновением клипа с рабочего поля. Это происходит при завершении игры. В данном случае функция необходима, чтобы сделать курсор видимым.

onClipEvent (unload) {

// Отображаем обычный курсор.

Mouse.show();
}




Начало  Назад  Вперед