Как и в предыдущих примерах, основной код назначен клипу «actions». Первая часть кода – функция onClipEvent(load). Клип устанавливает счета на 0 и инициализирует переменную shotsLeft, которой присваивается значение 50. Это позволяет игроку сделать 50 выстрелов и убить как можно больше лис. Переменная shotsLeft используется для отображения счета на экране, а переменная showShotsLeft, связанная с текстовой областью, отображает, сколько выстрелов осталось у игрока.
При помощи функции Mouse.hide в блоке onClipEvent(load) скрывается курсор мыши.
onClipEvent (load) {
// Задаем время между появлениями лис.
timeBetweenFoxes = 2000;
// Вычисляем, когда должна появиться следующая лиса.
nextFox = getTimer+timeBetweenFoxes;
// Инициализируем переменную, содержащую количество
// попаданий и число выстрелов.
score = 0;
shotsLeft = 50;
_root.showScore = "Score:"+score;
_root.showShotsLeft = "Shots Left:"+shotsLeft;
// Прячем курсор.
Mouse.hide;
}Примечание
Использование объекта Mouse позволяет контролировать видимость курсора, расположенного над рабочим полем ролика. При помощи команды Mouse.hide вы можете скрыть курсор, при помощи команды Mouse.show – вновь вывести его на экран.
Так как курсор скрыт, его необходимо заменить чем-нибудь, чтобы игрок видел, по какому месту экрана он щелкает. В данном случае клип «cursor» ставится в соответствие положению курсора мыши.
В остальном функция onClipEvent(enterFrame) повторяет аналогичную функцию игры "Поймай лису".
onClipEvent (enterFrame) {
// Передвигаем курсор.
_root["cursor"]._x = _root._xmouse;
_root["cursor"]._y = _root._ymouse;
// Проверяем, не пора ли показывать следующую лису.
if (getTimer>=nextFox) {
// Сокращаем время до следующего появления лисы.
timeBetweenFoxes -= 5;
// Проверяем, не завершена ли игра.
if (shotsleft < 1) {
_root.gotoAndPlay("End");
// Если нет, показываем новую лису.
} else {
// Задаем появление новой лисы.
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) перед созданием новой лисы обнаруживается, что у игрока не осталось выстрелов. Ролик завершается не сразу после последнего выстрела, а через одну-две секунды.