- •Гэри Розенцвейг
- •Посвящение
- •Благодарности
- •Ждем ваших отзывов и пожеланий!
- •Введение
- •Об этой книге
- •Для кого предназначена эта книга
- •Аниматоры
- •Профессиональные разработчики Web‑сайтов
- •Студенты
- •Что вы должны знать
- •Чему вас научит эта книга
- •Изучение ActionScript
- •Создание игр во Flash
- •Использование готовых игр
- •Условные обозначения
- •Обновления и контактная информация
- •Желаю приятного прочтения
- •Глава 1 Инструменты Flash, используемые для создания игр
- •Интерфейс Flash
- •Главное окно Flash
- •Пункты меню
- •Меню File
- •Меню Edit
- •Меню View
- •Меню Insert
- •Меню Modify
- •Меню Text
- •Меню Control
- •Меню Window
- •Окно справки
- •Создание кнопок
- •Временная шкала кнопки
- •Пример кнопки
- •Создание текста
- •Свойства текста
- •Динамический текст
- •Редактируемый текст
- •Импорт мультимедийных элементов во Flash
- •Растровые изображения
- •Организация ролика
- •Библиотека
- •Нерабочая область
- •Подготовка ролика к публикации
- •Список заключительных проверок
- •Публикация
- •Размещение Flash‑ролика в сети
- •Глава 2 Введение в ActionScript
- •Урок 1. Что такое код ActionScript и где его размещать
- •Сценарии кадра
- •Сценарии для кнопок
- •Сценарии клипов
- •Урок 2. Использование окна Actions
- •Урок 3. Ваша первая программа на ActionScript
- •Урок 4. Контроль воспроизведения ролика
- •Урок 5. Создание кнопок для пользователя
- •Урок 6. Анимация при помощи ActionScript
- •Урок 7. Возможность управления клипами пользователем
- •Урок 8. Использование переменных
- •Урок 9. Выполнение операций
- •Урок 10. Условные выражения
- •Урок 11. Циклы
- •Урок 12. Текст и строки
- •Урок 13. Создание функций
- •Урок 14. Массивы
- •Глава 3 Элементы ActionScript для создания игр
- •Урок 15. Контроль воспроизведения клипа
- •Урок 16. Управление свойствами клипа
- •Урок 17. Применение метода «Перетащи и положи» к клипам
- •Урок 18. Клипы и уровни
- •Урок 19. Копирование клипов
- •Урок 20. Управление несколькими клипами
- •Создание клипа сценария
- •Обработчики событий
- •Урок 21. Пересечение объектов
- •Урок 22. Изменения содержимого экранас помощью клипов
- •Урок 23. Ввод команд с клавиатуры
- •Урок 24. Воспроизведение звука
- •Глава 4 Процесс создания игры
- •Flash и игры
- •Недостатки
- •Достоинства
- •Элементы игры
- •Окно загрузки
- •Титульное окно
- •Правила
- •Окно завершения игры
- •Программирование
- •Анализ задачи
- •Правила программирования
- •Отладка
- •Тестирование
- •Вопросы авторских прав
- •Изменение игр, рассматриваемых в данной главе
- •Изменение графики
- •Изменение кода ActionScript
- •Объединение игр
- •Глава 5 Создание визуальных эффектов
- •Увеличение кнопок
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Вращающаяся и изменяющая цвета спираль
- •Задача проекта
- •Объект Color
- •Трансформация цветов
- •Подготовка ролика
- •Смена цветов и вращение
- •К сведению
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Перемещение букв
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •След от курсора
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Эффект трехмерности
- •Задача проекта
- •Углы куба
- •Добавление ребер
- •Другие возможности
- •Глава 6 Игрушки и безделушки
- •Волшебный хрустальный шар
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Подготовка ролика
- •Создание кода
- •Другие возможности
- •Подготовка ролика
- •Создание кода
- •Другие возможности
- •Создание кода
- •Другие возможности
- •Игра" Жизнь"
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Глава 7 Игрушки‑конструкторы
- •Составь лису методом «Перетащи и положи»
- •Создай лису методом «Нажми и измени»
- •Задача проекта
- •Создание кода
- •К сведению
- •Создание полной программы рисования
- •Добавление кнопок Clear и Print
- •К сведению
- •Другие возможности
- •Музыкальный миксер
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Танцующая Лиса
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Глава 8 Игры типа "Найди и нажми"
- •Найди лису
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Поймай лису
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Подстрели лису
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Охота на лис
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Глава 9 Игры типа "Поймай или пропусти"
- •Поймай яблоко
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Поймай хорошее яблоко
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Сплав на байдарке
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Глава 10 Игры типа "Прицелься и выстрели"
- •Стрельба по воздушным шарам
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Стрельба с прицелом
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •К сведению
- •Другие возможности
- •Глава 11 Игры с мячом и битой
- •Стена и мяч
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Мяч и бита
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Бита и блоки
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Бита и блоки: три измерения
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Викторина с учетом времени
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Криптограмма
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Глава 13 Мозаика
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •Другие возможности
- •Пятнашки
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Игра совпадений
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Найди картинку
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Глава 14 Головоломки
- •Игра на развитие памяти
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Дедукция
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •Другие возможности
- •Рекурсивные блоки
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Глава 15 Казино и карточные игры
- •Игровой автомат
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Видеопокер
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Игра в очко, или двадцать одно
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Пасьянс «Пирамида»
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Глава 16 Аркады
- •Космический бой
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Астероиды
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Погоня в лабиринте
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Луноход
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Платформенный скроллер
- •Задача проекта
- •Подготовка ролика
- •Создание кода
- •К сведению
- •Другие возможности
- •Глава 17 Сложные приемы
- •Выполнение и оптимизация
- •Использование альтернативных возможностей
- •Установление контрольных точек
- •Выбор лучшей альтернативы
- •Оптимизация в ActionScript
- •Экран загрузки
- •Создание полосы загрузки
- •Сложные экраны загрузки
- •Другие типы экранов загрузки
- •Защита от копирования
- •Как и почему воруют игры
- •Как предотвратить воспроизведение игры с другого компьютера
- •Как обойти защиту от копирования
- •Другие методы защиты
- •Список лучших игроков
- •Как работает список лучших игроков
- •Программы на языке Perl
- •Демонстрация списка лучших игроков
- •Добавление списка лучших игроков в игру
- •Сложности применения списка лучших игроков
- •Определение версии Flash‑плагина
- •Как узнать версию плеера
- •Требуемые версии
- •Возможности Flash 8‑плеера
- •Приложение a Ресурсы сети Internet для Flash‑разработчика
- •Приложение b Краткий экскурс в историю игр
- •От игры «Senet» до "Space War
- •Эволюция настольных игр
- •Военные и ролевые игры
- •От «Space War» к «Pong»
- •От «Pong» к "Pac‑Man
- •Появление домашних игровых видеоприставок
- •Игры покоряют компьютеры
- •Сетевые компьютерные игры
- •Дополнительная литература
К сведению
Игра включает еще два кода кнопок Play, один для окна начала, другой для окна завершения игры. Кроме того, все кадры содержат команду stop(), запрещающую переход ролика к следующему кадру.
Выбор цвета найденных объектов зависит от фона. В нашем примере фон состоит из зеленого, коричневого и голубого цветов, поэтому для пойманных лис мы выбрали красный цвет.
Другие возможности
Приведенный здесь пример – игра для совсем маленьких детей. Тем не менее, используемый в ней принцип может быть использован при создании более совершенных игр.
Детям более старшего возраста подойдет игра, целью которой является нахождение чисел или слов какого‑либо одного типа. К примеру, задача игры может состоять в выборе глаголов из имеющихся в наличии слов разных частей речи. Другой вариант – географическая викторина, в которой игроку необходимо выбрать определенные страны или места.
Поймай лису
Исходный файл: Whackfoxfla
Одна из игр в залах игровых автоматов прошлых лет называлась "Поймай крота". Игровое поле представляло собой плоскость, в отверстиях которой появлялись небольшие объекты, похожие на кротов. При помощи мягкого молотка, обычно привязанного к автомату, необходимо было ударять по кротам. Они появлялись нерегулярно и в случайном порядке, поэтому для игры была необходима хорошая реакция.
Существуют различные компьютерные варианты подобной игры, очень популярные в сети. Они построены по тому же принципу, что и игра "Поймай крота", хотя редко похожи на нее. Объекты появляются в случайных местах и в произвольное время, и игрок должен щелкнуть по ним, прежде чем они исчезнут.
На примере ролика Whackfox.fla мы рассмотрим более традиционный вариант этой игры. На рис. 8.3 изображена игровая область: бревно с 18 отверстиями. Время от времени из отверстия на одну‑две секунды выглядывает лиса. Щелкнув по лисе, игрок получает очки.
Рисунок 8.3. Игровая область игры «Поймай лису» представляет собой бревно с 18 отверстиями. Лиса может появиться в любом из них
Задача проекта
Задача игры состоит в том, чтобы отверстие, в котором появляются объекты, выбиралось программой произвольным образом. Лиса может показаться в любом из 18 отверстий и почти сразу же исчезнуть.
На рис. 8.4 показан кадр анимации игры. В то время, когда лиса выглядывает, пользователь должен щелкнуть по ней и получить очки.
Игра ведется на время и счет.
Рисунок 8.4. Одна из лис выглянула из отверстия
Подход
Каждое отверстие в бревне представляет собой экземпляр одного клипа. Клип изображает либо пустое отверстие, либо анимацию лисы, выглядывающей из этого отверстия.
Другой клип под названием "actions" управляет очередностью и периодичностью воспроизведения клипов. В начале игры лисы будут выглядывать через каждые две секунды. С каждым разом интервал между появлениями лис немного сокращается.
Когда игрок щелкает по экрану, клип "actions" определяет, какая лиса была выбрана. После этого клип воспроизводит другую анимацию, изображающую лису в состоянии легкого шока.
Каждый раз при появлении лисы значение счетчика увеличивается на один пункт. Когда игрок попадает в лису, значение другого счетчика также увеличивается на единицу. Счет отображается следующим образом: количество попаданий в лису, потом знак /, затем количество появлений лисы. Другими словами, значение "5/12" будет обозначать, что игрок поразил 5 лис из 12.