Чтение онлайн

на главную - закладки

Жанры

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

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

Шрифт:

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

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

Смена цветов и вращение

Ролик будет состоять из одного сценария, назначенного клипу с изображением спирали.

Переменная 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. Приведем пример:

n = int(Math.random*500);

Следуюшая короткая функция перемешает клип в случайное место экрана, имеюшего размер 550x400.

onClipEvent(load) {

this._x = Math.random*550;

this._y = Math.random*400;

}

Использование вышеприведенной функции демонстрируется в ролике Randomlocation.fla, который размешен на Web-сайте поддержки книги. Запустите файл несколько раз, чтобы убедиться, что ролик каждый раз перемешается в другое место экрана.

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

Нижеприведенный сценарий перемешает клип в случайном направлении. Переменные dx и dy принимают значения в интервале от -5 до 5 и задают величину изменения координат клипа _x и _y соответственно (фактически dx и dy определяют скорость перемешения клипа). Переменные dx и dy изменяют свои значения в случайные моменты времени.

Поделиться:
Популярные книги

Гарем вне закона 18+

Тесленок Кирилл Геннадьевич
1. Гарем вне закона
Фантастика:
фэнтези
юмористическая фантастика
6.73
рейтинг книги
Гарем вне закона 18+

Разведчик. Заброшенный в 43-й

Корчевский Юрий Григорьевич
Героическая фантастика
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.93
рейтинг книги
Разведчик. Заброшенный в 43-й

Академия

Кондакова Анна
2. Клан Волка
Фантастика:
боевая фантастика
5.40
рейтинг книги
Академия

Проклятый Лекарь IV

Скабер Артемий
4. Каратель
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Проклятый Лекарь IV

Третий. Том 3

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
Третий. Том 3

СД. Том 17

Клеванский Кирилл Сергеевич
17. Сердце дракона
Фантастика:
боевая фантастика
6.70
рейтинг книги
СД. Том 17

Чемпион

Демиров Леонид
3. Мания крафта
Фантастика:
фэнтези
рпг
5.38
рейтинг книги
Чемпион

Краш-тест для майора

Рам Янка
3. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
эро литература
6.25
рейтинг книги
Краш-тест для майора

На границе империй. Том 7. Часть 3

INDIGO
9. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.40
рейтинг книги
На границе империй. Том 7. Часть 3

Случайная жена для лорда Дракона

Волконская Оксана
Фантастика:
юмористическая фантастика
попаданцы
5.00
рейтинг книги
Случайная жена для лорда Дракона

Не грози Дубровскому! Том II

Панарин Антон
2. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том II

Барон устанавливает правила

Ренгач Евгений
6. Закон сильного
Старинная литература:
прочая старинная литература
5.00
рейтинг книги
Барон устанавливает правила

Возвращение

Кораблев Родион
5. Другая сторона
Фантастика:
боевая фантастика
6.23
рейтинг книги
Возвращение

Кодекс Охотника. Книга XXV

Винокуров Юрий
25. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
6.25
рейтинг книги
Кодекс Охотника. Книга XXV