Создание Flash игр -практические уроки

Графика для Windows библиотека программиста средствами DirectDraw

Программисты (особенно начинающие) любят задавать вопросы типа: «Скажи, на чем ты пишешь…?» Когда-то этот вопрос выглядел вполне логично. Компиляторы, отладчики, серверы, системы управления базами данных и все остальное только-только выходило из каменного века. Программные инструменты разительно отличались друг от друга по качеству и возможностям. Стоило сделать ставку на неудачный инструментарий, и работа становилась излишне тяжкой, а качество результата — низким.
Сегодня стал актуальным другой вопрос: «А чего стоишь ты сам?» Благодаря непрерывной конкуренции современные средства разработчика стали невероятно мощными и качественными, так что среднему программисту вряд ли удастся выжать из них все возможное. Скорее всего, вы спасуете намного раньше, чем ваш инструментарий — если только не узнаете о нем абсолютно все и не доведете свое мастерство программиста до подлинного совершенства.
Книги этой серии предназначены для углубленного изучения программных инструментов. В них рассматриваются нетривиальные возможности, которые невозможно описать в простейшем учебнике. Полноценные проекты заставляют читателя мыслить на уровне эксперта — напрягать серое вещество, лежащее в основе всего, что мы называем «мастерством».
Конечно, это не единственный путь — например, можно добросовестно набивать шишки обо все острые углы новых технологий и наобум пробовать все подряд, пока что-нибудь не заработает. А можно воспользоваться опытом наших авторов, которые уже прошли стадию обучения и попутно сделали кое-какие заметки на память. Мы тщательно отобрали темы, авторов и методику изложения, чтобы читатель не путался в ненужных вступлениях или редких технологиях, которые ему все равно не понадобятся.
Наша главная цель — поднять ваше мастерство настолько, насколько вы сами захотите. Классные инструменты у вас уже есть, осталось лишь стать классным программистом.

Краткий курс DirectDraw
Полностью рассмотреть в одной главе всю библиотеку DirectDraw было бы нереально. В конце концов, даже о простейших аспектах DirectDraw написаны целые книги. DirectDraw представляет собой мощный и гибкий API, с помощью которого можно создать практически любое графическое приложение Windows. Именно гибкость существенно усложняет любые описания. Следовательно, было бы глупо пытаться рассмотреть все, от начала до конца, в одной главе.

DirectInput
DirectInput представляет собой DirectX API для работы с устройствами ввода — клавиатурой, мышью, джойстиками, рулями, авиационными рукоятками, шлемами виртуальной реальности и даже устройствами с обратной связью. В полном соответствии с идеологией DirectX библиотека DirectInput проектировалась в первую очередь для реализации высокого быстродействия и аппаратной независимости. Основная задача DirectInput - как можно быстрее обнаружить пользовательский ввод и доставить его приложению. Исключение составляют устройства с обратной связью; для них в DirectInput предусмотрены функции как ввода, так и вывода.

Програмируем 3D графику используя DirectX

Если вы умеете программировать на С, но еще не перешли на C++ — вот вам отличный повод сделать это! Мой собственный опыт работы с C++ не так уж велик, и примеры будут понятны любому программисту на С, которому в течение нескольких недель пришлось иметь дело с C++. Если же вы не программируете на С, то советую вам вообще пропустить знакомство с ним и сразу начать с C++.
Я разрабатывал свои приложения и классы C++ с чисто практической точки зрения. Другими словами, я попытался создать средства для решения конкретных задач, а не ряд бесконечных примеров для демонстрации тех или иных возможностей. Вы не найдете в моих примерах классов типа CDog, CLabrador или CAardvark. Это вовсе не означает, что мы пропустим большинство возможностей механизма визуализации — мы используем их в той степени, в какой они нужны нам для создания приложений.

Наше первое трехмерное
Свет и тень

Дополнительные техники анимации

Во многих случаях искусство требует трансцендентных способов выражения. Оно имеет внутреннюю гармонию. Для лучшего понимания задач, возникающих в процессе создания компьютерной графики, нужно осознать, с чем вы работаете и к чему вы стремитесь.
Приступив к изучению Maya, вы начинаете знакомство с новым языком, с новым средством общения. Помните, что техника, которую вы получаете в руки, является лишь средством конечного выражения вашей фантазии. Поэтому насладитесь процессом работы.
Цифровые студии нанимают в первую очередь профессиональных художников, то есть людей, имеющих опыт в традиционных искусствах, например рисовании, живописи, фотографии или скульптуре. Соответственно, изучение компьютерной графики следует начать с обзора ключевых принципов искусства. Именно этому и посвящена данная глава. Всегда следует помнить, что компьютер, с которым вы работаете, — не более чем инструмент.
В последние десятилетия интерес к компьютерной графике значительно возрос. В немалой степени это является следствием появления на рынке мощных компьютеров по относительно низким ценам. Начиная с конца 90-х годов оборудование для создания анимации стало доступным для индивидуальных пользователей.

Новые возможности в Maya 6
Скелеты и кинематика
Базовые концепции освещения
Настройки визуализации
Динамические взаимодействия

Создание Flash игр -практические уроки

В главе 1 "Инструменты Flash, используемые для создания игр" мы еше раз рассмотрим основы Flash, обращая особое внимание на то, как различные инструменты этой программы используются для создания интерактивных приложений. Глава 2 "Введение в ActionScript" пригодится имеющим большой опыт работы с Flash, но мало занимающимся программированием. Она также будет интересна тем, кто знает другие языки программирования, однако никогда не имел дела с ActionScript. Глава 3 "Элементы ActionScript для создания игр" рассматривает различные элементы и приемы ActionScript и демонстрирует, как с их помощью создавать игры и анимации. Данная глава содержит основные сведения, необходимые для дальнейшей работы с книгой. Из главы 4 "Процесс создания игры" вы узнаете о планировании и программировании игр.
Оставшаяся часть книги, кроме последней главы, содержит примеры программ, в том числе их исходные тексты. Глава 5 "Создание визуальных эффектов", глава 6 "Игрушки и безделушки", глава 7 "Игрушки-конструкторы" описывают игрушки, которые предназначены для развлечения, но не обязательно являются игрой как таковой. В главах 8 "Игры типа «Найди и нажми»", 9 "Игры типа «Поймай или пропусти»", 10 "Игры типа «Прицелься и выстрели»", 11 "Игры с мячом и битой", 12 "Викторины и загадки со словами", 13 "Мозаика", 14 "Головоломки", 15 "Казино и карточные игры" и 16 "Аркады" описываются собственно игры.
Каждый раздел глав 5-16 начинается с описания того, как была создана данная игра. Затем вы знакомитесь с моим подходом к ее построению. Далее дается обзор элементов, составляющих игру. В конце приводится текст программы игры с подробным разбором каждой ее части. Каждая глава заканчивается советами по усовершенствованию игры.
В последней, 17-й, главе "Сложные приемы" вы изучите некоторые специальные приемы, такие как создание списка игроков, набравших наибольшее количество очков, и окна предварительной загрузки. И наконец, не пропустите содержательный список Web-ресурсов в главе "Ресурсы Internet для пользователей Flash". Хотелось бы обратить ваше внимание на' то, что в книге содержится множество программ на ActionScript! В ней их больше, чем в любой другой книге, посвященной Flash. Здесь около 37 игр с исходными кодами.

Введение
Хотя программа Flash в качестве среды программирования только-только «достигла совершеннолетия», она уже давно известна как отличное средство для создания развлечений. Flash используется для самых разных целей, начиная с разработки дизайна Web-сайта и заканчивая созданием больших анимаций. ActionScript - это еше один аспект Flash, также связанный с развлечениями. Основная задача данной книги - обучить созданию игр при помощи Flash.

Интерфейс Flash
Прежде чем создавать сложные программы на ActionScript, вам необходимо хорошо изучить интерфейс Flash, который включает множество окон, панелей и меню.

Что такое код ActionScript и где его размещать
ActionScript - это язык программирования, используемый программой Flash MX. По сравнению с главной временной шкалой, позволяющей создавать лишь линейную анимацию, ActionScript расширяет возможности программирования. При помощи ActionScript ваш ролик будет реагировать, например, на выбор, делаемый пользователем, или на другие события. ActionScript позволяет управлять элементами, которые видит пользователь, и вместо простой анимации показывать нелинейные презентации, интерактивные приложения или игры.

Контроль воспроизведений клипа
Клипы представляют собой как бы небольшие ролики внутри основного Flash-ролика. Они включают полноценную временную шкалу со слоями, а также большинство элементов основного ролика. И основной Flash-ролик, и клипы можно контролировать при помощи команд play() и stop(). В библиотеке файла под названием Mcplayback.fla, находится клип "myMovieClip". Этот клип состоит из 10 кадров, промаркированных для того, чтобы вы знали, какой кадр клипа воспроизводится в данный момент.

Flash и игры
Изначально программа Flash предназначалась не для создания игр, а для подготовки анимаций и интерфейсов Web-сайтов. Возможность создания настоящих игр во Flash появилась только с введением ActionScript.




Увеличение кнопок
Многие сайты используют Flash для навигации от страницы к странице. Даже простой Flash-ролик с одной кнопкой может значительно оживить статическую Web-страницу. При помощи ActionScript вы сможете сделал эти кнопки анимированными.

Волшебный хрустальный шар
Наверное, самой распространенной интерактивной программой, которую можно встретить в Internet, является программа-предсказатель, работаюшая на основе случайных чисел. Обычно она называется "Маеgic Eight Balls" (Восемь волшебных шаров), по имени популярной игрушки Tyco.

Составь лису методом "Перетащи и положи"
Многие компьютерные игры созданы по подобию игрушек докомпьютерной эры. Одна из таких старых игрушек - "Mister Potato Head" (Господин картофельная голова). Она представляла собой набор пластиковых частей тела которые ребенок мог прикрепить к картошке и сделать смешного человечка. Позже вместо картошки стали использовать пластиковое туловище.

Найди лису
В игре "Найди лису" игроку показывают изображение, в котором он должен определить местоположение определенных объектов. В данном случае в ролике Findafox.fla местом действия является лес, а объектами, которые ищет игрок, - лисы. На первый взгляд игра представляется простой, однако основная ее идея в том, чтобы хорошо замаскировать объекты.

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

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

Стена и мяч
Первая игра называется "Стена и мяч". В ней имеются бита, управляемая пользователем, и три стены, от которых может отскакивать мяч. Четвертой стены нет (она открыта). Задача игрока состоит в том, чтобы не позволить мячу пролететь мимо биты

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

Пазл
Игра "Пазл" состоит из элементов одного размера, которые, соединяясь, образуют целостное изображение. Обычно они сделаны из картона и для составления картинки требуется большая площадь, например, обеденный стол. Так как экран монитора слишком мал по сравнению со столом, создать компьютерный аналог такой игры очень сложно. Однако в упрошенном варианте подобная игра вполне применима для Web-сайта в качестве развлекательного материала.