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

на главную

Жанры

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

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

Шрифт:

on (keyPress "r") {

circle._x++;

}

...

Совет

Имейте в виду, что событие keyPress чувствительны к регистру. Это значит, что если кнопке назначена клавиша "г", она не будет реагировать на нажатие комбинации Shift+R.

Исходный файл: Keyboardbutton.fla Для обозначения движений лучше использовать клавиши с изображением стрелок, а не буквы. Для указания данных клавиш используется специальный синтаксис. Ниже приведен сценарий, позволяющий пользователю перемещать клип в четырех направлениях. Вы можете также найти данный сценарий на Web-сайте в файле Keyboardbutton.fla.

on (keyPress

«<Rignt>») {

circle._x++;

}

on (keyPress "<Left>") {

circle._x—;

}

on (keyPress "<Up>") {

circle._y—;

}

on (keyPress "<Down>") {

circle._y++;.

}

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

...

Совет

Если для проверки нажатия клавиши используется кнопка, при удерживании клавиши пользователем действие будет повторяться. Это происходит потому, что большинство компьютеров запрограммировано на повторение при удерживании клавиши. Время между первым и вторым нажатием одной и той же кнопки, а также между последовательным нажатием разных кнопок определяется параметрами настройки клавиатуры системы пользователя. В играх, где пользователь может удерживать кнопку для повторения действия, не следует полагаться на функциональные возможности клавиатуры. Лучше применять функцию Key.isDown, которая рассматривается в данном разделе.

Функция Key.isDown позволяет проверить состояние клавиши. Например, чтобы проверить, нажата ли клавиша r, используется следующий код:

if (Key.isDown("r")) {

circle._x++;

}

Исходный файл: Keyisdown.fla Такой код не может и не должен быть назначен кнопке. Он должен быть назначен клипу "actions", в данном случае в файле Keyisdown.fla. Код находится внутри программы обработки onClipEvent(enterFrame), поэтому проверка происходит в каждом кадре. Код проверяет нажатие клавиш с изображением стрелок, которые обозначаются специальными константами наподобие Key.RIGHT.

onClipEvent(enterFrame) {

if (Key.isDown(Key.RIGHT)) {

_root.circle._x++;

}

if (Key.isDown(Key.LEFT)) {

_root.circle._x–;

}

if (Key.isDown(Key.UP)) {

_root.circle._y–;

}

if (Key.isDown(Key.DOWN)) {

_root.circle._y++;

}

}

При запуске данного ролика вы обнаружите, что движения круга стали более плавными. Значение частоты смены кадров было увеличено до 120 кадр/сек, максимального количества, которое может обработать компьютер.

Итак, когда же отдать предпочтение кнопке, отзывающейся на нажатие клавиши, а когда объекту Key? Если нажатие клавиши необходимо только для активации события, используйте кнопку. Она будет реагировать на нажатие клавиши в 100 % случаев. Функция Key.isDown отреагирует на нажатие клавиши, только если она вызвана. Поэтому, если пользователь нажмет и тут же отпустит кнопку, нажатие может быть пропущено. Это часто происходит на медленных компьютерах.

Функцию Key.isDown лучше использовать для контроля движения. В данном случае плавное движение будет продолжаться на протяжении всего времени удерживания клавиши. Функция может воспринимать одновременное нажатие нескольких клавиш, в то время как кнопка реагирует только на нажатие одной клавиши.

Урок 24. Воспроизведение звука

Завершая вводную часть нашего учебника по ActionScript, рассмотрим использование звука. Flash может воспроизводить звуки, помещая их во временную шкалу ролика или клипа. Вы также можете запускать воспроизведение звука при помощи команд ActionScript.

Запуск звука из библиотеки представляет собой несколько более сложную процедуру, чем просто

вызов одной команды. Прежде всего, необходимо убедиться, что звук включен в конечный swf-файл. Это можно сделать в диалоговом окне Symbol Linkage Properties. Сам процесс был рассмотрен на уроке 20 "Управление несколькими клипами". В данном случае предположим, что звук связан с именем beep.

Воспроизведение звука задается при помощи нескольких строк кода. Сначала надо создать объект типа Sound. Затем объекту необходимо сообщить, что "beep" – это звук, который должен воспроизводиться. Потом следует запустить звук. Вот как будет выглядеть код внутри сценария кнопки:

on (press) {

mySound = new Sound;

mySound.attachSound("beep");

mySound.start;

}

...

Примечание

Функция start, которая используется со звуками, может включать два параметра. Первый – это задержка времени в секундах перед началом воспроизведения звука. В случае, если вы хотите пропустить первые три секунды, значение параметра будет 3. При обычном воспроизведении устанавливается 0. Вторым аргументом является количество циклов звука. Для воспроизведения 10 звуковых сигналов подряд используется значение 10.

Существует множество возможностей настройки звука. Наиболее важной из них является регулирование громкости. Если звук слишком громкий, вы можете изменить код ActionScript, а не переделывать звук.

Для настройки громкости, значение которой варьируется от 0 до 100, используется функция setVolume. Ниже приведен тот же самый код, но с уменьшенным вполовину значением громкости:

on (press) {

mySound = new Sound;

mySound.attachSound("beep");

mySound.setVolume(50);

mySound.start;

}

Стоит также отметить функцию setPan, которая может принимать значение от -100 до 100. Она позволяет контролировать баланс для стереозвуков, при этом -100 соответствует левой колонке, 100 – правой. При воспроизведении в режиме моно звук из одной колонки будет сильнее, чем из другой. Ниже приведен сценарий, задающий воспроизведение звука только из левой колонки:

on (press) {

mySound = new Sound;

mySound.attachSound("beep");

mySound.setPan(-100);

mySound.setVolume(100);

mySound.start;

}

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

Исходный файл: Sound.fla

Ролик Sound.fla на Web-сайте содержит четыре кнопки. Большая кнопка в центре отвечает за обычное воспроизведение звука. Большие кнопки слева и справа предназначены для воспроизведения звука только из левой или из правой колонки. Маленькая кнопка в центре воспроизводит звук с громкостью 50 %.

Вы узнаете больше о звуках в разделе "Музыкальный автомат" главы 6 "Игрушки и безделушки", а также в разделе "Музыкальный микшер" главы 7 "Игрушки-конструкторы".

На этом мы закончили изучение основ ActionScript. В следующей главе вы узнаете о таких приемах программирования, как планирование, отладка и тестирование. Затем, начиная с главы 5 "Создание визуальных эффектов", мы начнем рассматривать примеры программ.

Глава 4 Процесс создания игры

• Flash и игры

• Элементы игры

• Программирование

• Вопросы авторских прав

• Изменение игр, рассматриваемых в данной главе

• Распространенные ошибки

Знания одних функций ActionScript не достаточно для создания законченных программ, например игр. Необходимо освоить базовые приемы программирования, а также изучить общее принципы создания игр. Давайте рассмотрим, что представляет собой Flash как среда разработки игр.

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

Ведьма

Резник Юлия
Любовные романы:
современные любовные романы
эро литература
8.54
рейтинг книги
Ведьма

Комбинация

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

Неудержимый. Книга XI

Боярский Андрей
11. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XI

Большая игра

Ланцов Михаил Алексеевич
4. Иван Московский
Фантастика:
альтернативная история
5.00
рейтинг книги
Большая игра

Хозяйка Междуречья

Алеева Елена
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Хозяйка Междуречья

Возвышение Меркурия. Книга 3

Кронос Александр
3. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 3

Восьмое правило дворянина

Герда Александр
8. Истинный дворянин
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восьмое правило дворянина

Идеальный мир для Лекаря 6

Сапфир Олег
6. Лекарь
Фантастика:
фэнтези
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 6

Жена моего брата

Рам Янка
1. Черкасовы-Ольховские
Любовные романы:
современные любовные романы
6.25
рейтинг книги
Жена моего брата

Генерал Империи

Ланцов Михаил Алексеевич
4. Безумный Макс
Фантастика:
альтернативная история
5.62
рейтинг книги
Генерал Империи

Купеческая дочь замуж не желает

Шах Ольга
Фантастика:
фэнтези
6.89
рейтинг книги
Купеческая дочь замуж не желает

Академия

Сай Ярослав
2. Медорфенов
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Академия

Светлая ведьма для Темного ректора

Дари Адриана
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Светлая ведьма для Темного ректора

Хроники разрушителя миров. Книга 8

Ермоленков Алексей
8. Хроники разрушителя миров
Фантастика:
фэнтези
5.00
рейтинг книги
Хроники разрушителя миров. Книга 8