Подстрели лису
Функцию 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 очков. Каким образом? В ходе игры лисы начинают появляться друг за другом все быстрее и быстрее. Через некоторое время на экране одновременно будут появляться несколько лис. Когда пути двух лис пересекаются, вы можете убить их одним выстрелом, однако это требует сноровки. Если хотите, отмените данное свойство.
В игре могут использоваться некоторые звуковые эффекты и фоновые звуки. Игра будет более интересной, если добавить отвлекающую внимание анимацию, например пролетающую птицу или ветер, раскачивающий ветви.
