Гэри Розенцвейг - Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
- Название:Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Гэри Розенцвейг - Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript краткое содержание
Данная книга посвящена программированию игр с помощью ActionScript. Здесь вы найдете подробные указания, необходимые для создания самых разных игр – аркад, головоломок, загадок и даже игровых автоматов. В тексте приведены исходные коды программ и детальные, доступно изложенные инструкции. Базовые принципы программирования ActionScript рассматриваются на примере игр, однако вы без труда сможете применить полученные знания и для разработки неигровых проектов, таких как Web-дизайн и реклама. Рекомендации Гэри Розенцвейга помогут вам не только придумывать занимательные игры и размещать их на Web-сайте, но и оптимизировать скорость их работы, а также защищать свои творения от несанкционированного копирования. Представленный в книге код несложно изменить для использования в других программах.
Книга предназначена для широкого круга читателей – создателей анимационных роликов, художников-оформителей, программистов и разработчиков Web-сайтов. Издание может также выступать в качестве практического пособия по изучению ActionScript.
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Вся эта информация о цветах и преобразовании может использоваться для создания специальных эффектов. Давайте попробуем сделать что-нибудь более интересное.
Возьмем основной пример данного раздела и сделаем так, чтобы клип по очереди изменял свой цвет на один из цветов радуги. Для этого необходимо изменить красную, зеленую и синюю составляюшие. Здесь будет использоваться та же самая функция setTransform, однако алгоритм изменения значений по сравнению с предыдушим примером будет более сложным.
В качестве исходного для красного, зеленого и синего цветов берется значение 255, которое изменяется следующим образом:
1. Значение красного цвета уменьшается до 0.
2. Значение синего цвета уменьшается до 0.
3. Значение красного цвета увеличивается до 255.
4. Значение зеленого цвета уменьшается до 0.
5. Значение синего цвета увеличивается до 255.
6. Значение зеленого цвета увеличивается до 255.
При этом цвета белый, циан (cyan), зеленый, желтый, красный, фуксин (magenta), белый будут плавно преврашаться из одного в другой в указанной последовательности. В ней участвуют все цвета, кроме чистого синего. Так мы создадим изменяюшую цвет спираль.
Подготовка ролика
В данном ролике будет использоваться один элемент – спиральная фигура. Поместите его в центр рабочего поля. Начальный цвет спирали должен быть белым, а фоновый – черным.
Смена цветов и вращение
Ролик будет состоять из одного сценария, назначенного клипу с изображением спирали.
Переменная n,участвуюшая в сценарии, содержит способ изменения цвета. Значение цвета будет соответствовать числу из предыдушего списка. Так, например, если nбудет равно 3, значение красной составляюшей увеличится.
Значение переменной nсначала равно 1, затем увеличивается до 6 и далее цикл повторяется. Ниже приведена часть кода c последовательностью if…then, которая использует значение переменной nи изменяет объект преобразования цвета.
if (n == 1) {
colorTransform.rb -= 5;
if (colorTransform.rb ==0) n = 2;
} else if (n == 2) {
colorTransform.bb -= 5;
if (colorTransform.bb ==0) n = 3;
} else if (n == 3) {
colorTransform.rb += 5;
if (colorTransform.rb == 255) n = 4;
} else if (n == 4) {
colorTransform.gb -= 5;
if (colorTransform.gb == 0) n = 5;
} else if (n == 5) {
colorTransform.bb += 5;
if (colorTransform.bb == 255) n = 6;
} else if (n == 6) {
colorTransform.gb += 5;
if (colorTransform.gb == 255) n = 1;
}Примечание
Оператор +=используется для прибавления к переменной определенного числа. Например, код n += 5прибавляет 5 к значению n. Этот код аналогичен коду n = n + 5.Оператор =-используется для вычитания определенного числа из переменной.
Значение переменной nпроверяется в каждой части выражения if.then. В случае совпадения одна из трех цветовых составляюших объекта colorTransform изменяется. После окончания изменений, сама переменная nменяет свое значение на следующие.
Полная программа представляет собой обычный клип ActionScript с функциями onClipEvent(load) и onClipEvent(enterFrame). Первая вводит объекты цвета и преобразования, вторая выполняет постепенное изменение цветов.
Кроме того, мы сделаем так, чтобы клип врашался. Врашение достигается постепенным увеличением значения параметра _rotation.
onClipEvent(load) {
// Создаем объект цвета и цветовой трансформации.
spiralColor = new Color(this);
colorTransform = {rb:255, bb:255, gb:255};
// Вначале n равно единице.
n = 1;
}
onClipEvent(enterFrame) {
// Определяем, какую составляющую необходимо изменить.
if (n == 1) {
colorTransform.rb -= 5;
if (colorTransform.rb == 0) n = 2;
} else if (n == 2) {
colorTransform.bb -= 5;
if (colorTransform. bb == 0) n = 3;
} else if (n == 3) {
colorTransform.rb += 5;
if (colorTransform. rb == 255) n = 4;
} else if (n == 4) {
colorTransform.gb -= 5;
if (colorTransform. gb == 0) n = 5;
} else if (n == 5) {
colorTransform.bb += 5;
if (colorTransform.bb == 255) n = 6;
} else if (n == 6) {
colorTransform.gb += 5;
if (colorTransform. gb == 255) n = 1;
}
// Задаем новый цвет.
spiralColor.setTransform(colorTransform);
// Вращаем спираль.
this._rotation += 5;
}Примечание
Объект this обозначает обращение клипа к самому себе. Так как сценарий назначен клипу, использование this будет обозначать, что команда, следующая после this, относится к самому клипу, а не к другому клипу или ролику.
Примечание
Параметр клипа _rotation используется для поворота клипа на определенное количество градусов. Он может иметь как положительные, так и отрицательные значения. Если вы укажете значение больше 360°, Flash автоматически преобразует его. К примеру, при вводе значения 370° клип будет повернут на 10°.
На рис. 5.4 изображен фрагмент ролика Spiral.fla.
Рисунок 5.4. Спираль изменяет цвет и вращается
Хотя этот же эффект можно получить и средствами классической анимации, ActionScript позволяет сделать это намного быстрее.
К сведению
Частота смены кадров ролика определяет скорость врашения спирали и смены цветов. Максимальная частота во Flash 8 – 120 кадр/с. Однако следует иметь в виду, что частота смены кадров напрямую зависит от быстродействия компьютера.
Другие возможности
Изменив оператор += на —= в последней строке кода, вы заставите спираль врашаться в обратном направлении. Вы можете также изменить способ смены цветов, изменив значения красной, зеленой и синей составляюших.Случайность и эффект старого кино
Исходные файлы: Randomlocation.fla, Randommovement.fla, Oldfilm.fla
Используя Flash исключительно в качестве инструмента анимации, можно добиться поразительных эффектов, но каждый раз анимация будет воспроизводиться одинаково. ActionScript имеет алгоритм выбора случайных чисел, благодаря чему в содержание ролика можно вносить элемент некой непредсказуемости.
Задача проекта
Задача данного раздела – научиться использовать случайные числа для создания визуальных эффектов. Возможно, вы захотите создать «эффект старого кино», когда на изображении кое-где появляются царапины и точки.
Подход
Во Flash MX сушествует два способа генерирования случайных чисел. Первый – включить в код функцию Random, которая была в четвертой версии программы. Эта функция выдает значение в диапазоне от 0 до значения, на единицу меньшего, чем аргумент. К примеру, функция Random(5) выдаст значение от 0 до 4.
Во Flash MX появилась функция Math.random(). Возможно, что в следующих версиях Flash функции Random уже не будет. Функция Math.random() выдает число с плаваюшей запятой от 0,0 до 1,0.
Чтобы получить значение вне диапазона [0..1], результат функции Math.Random() можно умножить на какое-нибудь число. Например, умножение результата на 500 даст значение в диапазоне от 0,0 до 500,0. Функция int округляет результат в меньшую сторону. Использование этой функции в нашем случае позволит получить целое значение в диапазоне от 0 до 499. Приведем пример:
Читать дальшеИнтервал:
Закладка: