Подстрели лису
Функцию 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(); }К сведению
После создания кода необходимо присвоить копиям клипа имена с "fox0" по "fox6", соответствующие их именам в библиотеке. В нашем примере центр всех клипов с изображениями лис совпадает с центром рабочего поля. Это было сделано следующим образом: анимация была добавлена в главную временную шкалу, выделена, скопирована при помощи команды Edit › Copy Frames (Редактировать › Копировать кадры) и вставлена в пустой клип.
Другие возможности
В игру легко внести различные изменения. Заданное количество выстрелов можно заменить таймером. Игра может состоять из уровней: игрок будет переходить на другой уровень, поразив определенное количество лис.
Имейте в виду, что игра дает возможность набирать более 50 очков. Каким образом? В ходе игры лисы начинают появляться друг за другом все быстрее и быстрее. Через некоторое время на экране одновременно будут появляться несколько лис. Когда пути двух лис пересекаются, вы можете убить их одним выстрелом, однако это требует сноровки. Если хотите, отмените данное свойство.
В игре могут использоваться некоторые звуковые эффекты и фоновые звуки. Игра будет более интересной, если добавить отвлекающую внимание анимацию, например пролетающую птицу или ветер, раскачивающий ветви.
