Читаем Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript полностью

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

<p>Подстрели лису</p>

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

Рассмотрим еще одну игру из серии "Найди и нажми" – игру-тир. Как и в игре "Найди лису", задача пользователя – щелкнуть по объектам на экране. На игру "Поймай лису" она похожа тем, что объекты появляются на экране в произвольных местах и через произвольный интервал времени.

Но в отличие от предыдущих игр, объекты будут двигаться, лиса будет не просто появляться из отверстия, а бегать, поворачиваться или выглядывать из-за дерева. Игрок должен обладать хорошей реакцией, чтобы попасть по лисе до того, как она снова исчезнет.

На рис. 8.7 показана сцена, очень напоминающая сцену игры "Найди лису". Однако теперь лиса не будет ждать, пока игрок обнаружит ее. Рисунок демонстрирует кадр анимации, в которой лиса быстро перебегает из одной части экрана в другую.

Рисунок 8.7. В игре «Подстрели лису» лиса перемешается по игровому полю

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

За основу данной игры взята игра «Поймай лису». Лисы постоянно бегают из одной части игрового поля в другую. Мы будем использовать три анимационных последовательности: лиса перебегает с места на место, раскачивается под деревом и выглядывает из-за дерева. Каждая анимация используется два или три раза, различные их комбинации составляют семь возможных анимаций, воспроизводящихся во время игры.

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

Игра должна отслеживать количество сделанных выстрелов и количество попаданий, а также задавать ограничение на число произведенных выстрелов. Курсор следует сделать не в виде стрелки, а в виде прицела ружья.

Подход

Поскольку рассматриваемая игра была создана на основе игры «Поймай лису», основная часть кода должна быть вам знакома. Тем не менее, в него были внесены некоторые изменения и дополнения.

Первые изменения касаются способа организации клипов, которые должны содержать анимацию движения и одновременно показывать, произошло ли попадание в лису. Для этого необходимо использовать клип внутри клипа. Вложенный клип имеет два состояния: поражен и не поражен". Во внешнем клипе описывается движение лисы.

В игре отслеживается и общее количество выстрелов, и количество попаданий. Оба числа отображаются на экране. После того как пользователь израсходует все выстрелы, игра завершается.

Еще одно новшество данной игры – использование необычного курсора. Стандартный курсор мыши спрятан, вместо него виден клип, перемещающийся по рабочему полю за курсором (см. нижнюю часть рис. 8.7).

Подготовка ролика

Наиболее сложным является создание клипов. Чтобы лучше понять, о чем пойдет речь в этом разделе, внимательно изучите ролик Shootafox.fla, размещенный на Web-сайте.

В библиотеке вы увидите три клипа: Peeking Fox (Выглядывающая лиса), Running fox (Бегущая лиса) и Swinging fox (Раскачивающаяся лиса). Каждый из этих клипов состоит из одного кадра или короткой анимации лисы, за которой следует короткая анимация, изображающая удивленную лису, обведенную желтым контуром. Первая часть соответствует движению живой лисы, вторая часть обозначает, что пользователь убил зверька. Вторая часть начинается с кадра, имеющего метку "hit".

Ролик также включает семь клипов с именами "fox0" – "fox6". Эти клипы содержат внутри себя один из вышеописанных клипов, однако теперь анимация изображает, как лиса движется по игровому полю или выглядывает из-за дерева. Клипы, расположенные внутри каждого из клипов с именами "fox0" – "fox6", содержат метку "fox", благодаря чему код может обращаться к ним. Для того чтобы показать, что лиса поражена, копия клипа "fox", находящегося внутри клипов "fox0" – "fox6", переходит к кадру "hit".

Большое значение имеет распределение слоев. Ролик состоит из 15 слоев, представляющих собой либо элементы обстановки (в данном случае лес), либо самих лис. Это позволяет прятать лис за одними предметами и показывать перед другими. Отдельные слои зарезервированы для клипов "actions" и "cursor".

В качестве курсора используется клип с изображением перекрестия. За кадром 1, в котором находится простое перекрестие, следует небольшая анимация вспышки, запускаемая во время выстрела игрока. Затем клип возвращается к кадру 1, который содержит команду stop.

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

Создание кода

Перейти на страницу:

Похожие книги

C++
C++

С++ – это универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных деталей С++ является надмножеством языка программирования C. Помимо возможностей, которые дает C, С++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. Такие объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентированным. При правильном использовании этот метод дает более короткие, проще понимаемые и легче контролируемые программы. Ключевым понятием С++ является класс. Класс – это тип, определяемый пользователем. Классы обеспечивают сокрытие данных, гарантированную инициализацию данных, неявное преобразование типов для типов, определенных пользователем, динамическое задание типа, контролируемое пользователем управление памятью и механизмы перегрузки операций. С++ предоставляет гораздо лучшие, чем в C, средства выражения модульности программы и проверки типов. В языке есть также усовершенствования, не связанные непосредственно с классами, включающие в себя символические константы, inline-подстановку функций, параметры функции по умолчанию, перегруженные имена функций, операции управления свободной памятью и ссылочный тип. В С++ сохранены возможности языка C по работе с основными объектами аппаратного обеспечения (биты, байты, слова, адреса и т.п.). Это позволяет весьма эффективно реализовывать типы, определяемые пользователем. С++ и его стандартные библиотеки спроектированы так, чтобы обеспечивать переносимость. Имеющаяся на текущий момент реализация языка будет идти в большинстве систем, поддерживающих C. Из С++ программ можно использовать C библиотеки, и с С++ можно использовать большую часть инструментальных средств, поддерживающих программирование на C. Эта книга предназначена главным образом для того, чтобы помочь серьезным программистам изучить язык и применять его в нетривиальных проектах. В ней дано полное описание С++, много примеров и еще больше фрагментов программ.

Бьёрн Страуструп , Бьярн Страустрап , Мюррей Хилл

Программирование, программы, базы данных / Программирование / Книги по IT
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript

Данная книга посвящена программированию игр с помощью ActionScript. Здесь вы найдете подробные указания, необходимые для создания самых разных игр – аркад, головоломок, загадок и даже игровых автоматов. В тексте приведены исходные коды программ и детальные, доступно изложенные инструкции. Базовые принципы программирования ActionScript рассматриваются на примере игр, однако вы без труда сможете применить полученные знания и для разработки неигровых проектов, таких как Web-дизайн и реклама. Рекомендации Гэри Розенцвейга помогут вам не только придумывать занимательные игры и размещать их на Web-сайте, но и оптимизировать скорость их работы, а также защищать свои творения от несанкционированного копирования. Представленный в книге код несложно изменить для использования в других программах.Книга предназначена для широкого круга читателей – создателей анимационных роликов, художников-оформителей, программистов и разработчиков Web-сайтов. Издание может также выступать в качестве практического пособия по изучению ActionScript.

Гэри Розенцвейг

Программирование, программы, базы данных / Программирование / Книги по IT