Найди картинку

Найди картинку

Исходный файл: Fmdthepicture.fla

Эта игра необычная, ее можно найти скорее в книге пазлов, чем на компьютере. Создание Flash-версии этой игры помогает показать несколько полезных приемов.

В игре "Найди картинку" игрок ишет не целую картинку, а ее сегмент. Целиком картинка показана справа, а слева показана ее увеличенная часть. Задача состоит в том, чтобы быстро найти место увеличенного сегмента на целой картинке.

Игра показана на рис. 13.6. Сегмент слева выбран случайно и увеличен в три раза. Игрок должен шелкнуть по соответствуюшему месту большой картинки. В зависимости от того, насколько быстро он нашел правильное место, начисляются дополнительные очки.

Рисунок 13.6. В этой игре ваша задача найти место маленького изображения слева на большом изображении справа

Задача проекта

Чтобы создать эту игру, ваш сценарий должен уметь выбирать случайный сегмент из большой картинки и показывать его рядом с ней. Это требует использования масок. Также ActionScript должен уметь сопоставить сегмент с соответствуюшей областью на большой картинке.

Кроме манипуляций с изображениями, в игру должен быть включен таймер. Таймер начинает с некоего большего числа и производит обратный отсчет. Когда игрок верно угадывает место сегмента на картинке, он получает дополнительные очки в зависимости от показаний таймера.

Подход

Способ, каким сегмент картинки отображается на экране, основан на использовании слоев. В клипе картинка находится на одном слое, а маленький квадрат используется как маска для этого слоя. Только та часть картинки, которая находится под квадратом, оказывается видимой, когда клип отображается на экране.

Картинка имеет размер 400x300. Квадрат – размер 36x36. Когда картинка передвигается под квадратиком маски, видна только та часть картинки размером 36x36, которая находится под квадратом. Хотя перемешение картинки сделано в ActionScript, маска создана во временной шкале клипа во время подготовки ролика.

Когда пользователь отмечает положение сегмента на целой картинке, ему нужно шелкнуть по этому месту. Было бы естественно расположить на этом месте невидимую кнопку, дело только в том, что кнопка должна сама себя уничтожить, поскольку курсор пользователя заменяется на руку. Вместо этого поместите обычный клип на это место и используйте hitTest, чтобы определить, когда по нему шелкнут.

В ролике используются Flash МХ-листенеры, чтобы поместить весь код в главную временную шкалу. Это значит, что реакция на шелчок мыши и обслуживание изменяюшегося таймера должны быть частью сценария главной временной шкалы, а не одного из "actions' – клипов.

Данный текст является ознакомительным фрагментом.