Гэри Розенцвейг - Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
- Название:Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Гэри Розенцвейг - Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript краткое содержание
Данная книга посвящена программированию игр с помощью ActionScript. Здесь вы найдете подробные указания, необходимые для создания самых разных игр – аркад, головоломок, загадок и даже игровых автоматов. В тексте приведены исходные коды программ и детальные, доступно изложенные инструкции. Базовые принципы программирования ActionScript рассматриваются на примере игр, однако вы без труда сможете применить полученные знания и для разработки неигровых проектов, таких как Web-дизайн и реклама. Рекомендации Гэри Розенцвейга помогут вам не только придумывать занимательные игры и размещать их на Web-сайте, но и оптимизировать скорость их работы, а также защищать свои творения от несанкционированного копирования. Представленный в книге код несложно изменить для использования в других программах.
Книга предназначена для широкого круга читателей – создателей анимационных роликов, художников-оформителей, программистов и разработчиков Web-сайтов. Издание может также выступать в качестве практического пособия по изучению ActionScript.
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
function distance(mc1,mc2) {
d = Math.sqrt(Math.pow(mc1._x-mc2._x,2)+Math.pow(mc1._y-mc2._y,2));
return d;
}Все кролики контролируются функцией moveBunnies.Нет смысла следить за кроликами вне экрана, поэтому перемещаются только кролики, находящиеся не далее чем 275 пикселов от лисы. Перед перемещением кролика вызывается функция determineBoundsдля определения границ его возможного перемещения. Если границы позволяют, кролик начинает передвигаться в сторону позиции игрока. Если лиса оказывается достаточно бестолковой, чтобы подобраться близко к кролику, игра заканчивается.
function moveBunnies() {
// Просматриваем все объекты в поисках кроликов.
for(var i=objects.length-1;i>=0;i—) {
if (objects[i].type == "bunny") {
// Перемещаем только видимых кроликов.
if (Math.abs(objects[i].x-foxPos.x) < 275) {
// Движемся в сторону лисы.
if (foxPos.x < objects[i].x) {
var dx = -bunnySpeed;
} else if (foxPos.x > objects[i].x) {
var dx = bunnySpeed;
}
// Определяем границы.
bunnyBounds = determineBounds(objects[i]);
// Движемся только в пределах этих границ.
if ((dx < 0) and (bunnyBounds.left > Math.abs(dx))) {
objects[i].x += dx;
} else if ((dx > 0) and (bunnyBounds.right > Math.abs(dx))) {
objects[i].x += dx;
}
// Не подобрался ли кролик достаточно близко к лисе.
if (distance(_root["object "+i],fox) < 30) {
_root.onEnterFrame = undefined;
trace("got ya");
}
}
}
}
}
К сведению
Клип с лисой содержит три части: «stand», «run» и «jump». В первом кадре содержится команда stop(). В последнем кадре анимации «run» содержится команда gotoAndPlay(«run»). Благодаря этому движение зацикливается.
Клип "acorn" также содержит команду stop() в первом кадре.
Еще один важный момент – это установка центра координат клипов. Он расположен внизу и отцентрован по горизонтали. На рис 16.9 изображен клип "box" и его центр.
Рисунок 16.9. Во всех клипах центр находится внизу точно посерединеДругие возможности
Эта игра демонстрирует лишь простейшие возможности платформенного скроллера. Она настолько проста, что даже не имеет завершения. Существует несколько возможностей оформить конец игры.
Во первых, вы можете достигать крайней правой точки для окончания игры или уровня. Пространство этой игры относительно невелико, но если сделать его в несколько раз больше, то прохождение до границы уже будет некоторым достижением.
В другом варианте игра оканчивается, когда игрок собрал все орехи. Опять же вы можете сделать пространство игры больше.
Большинство платформенных скроллеров предлагают также избавляться от разных отрицательных героев. Обычно для этого достаточно прыгнуть сверху на такого плохого парня. В существующем варианте игры, если вы запрыгнете на кролика, игра окончится точно так же, как если бы вы пересеклись с ним по горизонтали. Но если вы сможете определить, что лиса падает сверху в момент столкновения с кроликом, то получите сражающуюся лису, которая будет получать дополнительные очки за побежденных кроликов.
Платформенные скроллеры могут быть очень сложными. Они запросто могут включать сотни страниц кода, добавляющих все больше и больше характеристик в игру. У вас же сейчас реализованы лишь самые основные моменты. Используя навыки предыдущих глав, вы вполне можете сколько угодно надстраивать эту игру.
Глава 17 Сложные приемы
• Выполнение и оптимизация
• Экран загрузки
• Защита от копирования
• Список лучших игроков
• Определение версии Flash-плагина
Хотя в предыдущих главах речь шла о сотнях алгоритмов ActionScript, многое осталось «за кадром». Мы не стали для иллюстрации этих концепций описывать использующие их игры, решили, что оптимальнее рассмотреть дополнительные возможности сами по себе. В этой главе затрагиваютсяе такие темы, как оптимизация, загрузка ролика, списки лучших игроков и защита от копирования, а также описывается множество полезных технических приемов.
Выполнение и оптимизация
При разработке игр с помощью программы Flash всегда возникает вопрос о скорости. До пятой версии Flash язык программирования был недостаточно эффективным и не позволял создавать многие игры. Но даже версия 5 была довольно медленной. Достаточно медленной, чтобы было невозможно реализовывать многие игры. Версия 8 значительно улучшила быстродействие программы. Теперь можно создавать игры, для которых Flash 5 был слишком медленной программой. Даже игры, созданные в пятой версии и запущенные с помощью проигрывателя версиии 8, смотрятся лучше. Но независимо от того, используете ли вы версию MX или 8, техника оптимизации может помочь ускорить любую игру или программу.
Использование альтернативных возможностей
Основная концепция оптимизации – существование нескольких путей выполнения одной и той же задачи. Для большинства случаев это действительно так. Например, если вы хотите переместить графический объект с одной стороны рабочего поля на другую, можно использовать анимацию движения (motion tween) или написать код на языке ActionScript.
Когда вы создаете что-либо в программе Flash, у вас есть две альтернативы. Первая – выполнение одной задачи разными способами. Например, результат перемещения графического объекта с помощью построения промежуточных изображений или ActionScript одинаков.
Другая альтернатива – изменение программы, чтобы результат был похож, но все-таки отличался. Например, если графический объект движется по экрану слишком медленно, можно его уменьшить, и теоретически скорость его перемещения возрастет.
Ключ к успеху оптимизации состоит в том, что вы должны четко представлять себе существующие альтернативы и тщательно взвесить их преимущества и недостатки. Для определения преимуществ можно воспользоваться техникой, которая называется "установление контрольных точек".
Установление контрольных точек
Исходный файл: Benchmarkl.fla
Если вы хотите сравнить два альтернативных варианта увеличения скорости, вам нужно как-то ее измерить. Конечно, вы можете определить скорость на глаз: когда объект движется быстрее; но такой способ не очень точен. Установление контрольных точек позволяет выяснить, какая из альтернатив работает быстрее и насколько.
Обычно с помощью контрольных точек сравниваются две или более альтернатив при выполнении одинаковых или аналогичных задач. В каждом случае засекается время в начале и конце выполнения задания.
В результате вы определяете, сколько времени необходимо на выполнение этого задания. Проведя несложные математические расчеты, вы можете преобразовать эту величину в скорость воспроизведения ролика, то есть количество кадров в секунду (fps – frames per second).
В качестве примера возьмите какой-либо графический объект, перемещающийся через рабочее поле. На рис. 17.1 в центре экрана изображена лиса в тот момент, когда бежит справа налево.
Читать дальшеИнтервал:
Закладка: