- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript - Гэри Розенцвейг
Шрифт:
Интервал:
Закладка:
this._x = int(Math.random()*550);
this._y = int(Math.random()*400);
}
}Строка this.hitTest() обозначает, что функция hitTest применяется к текущему клипу. Она включает три параметра: горизонтальное и вертикальное положение мыши, а также булевый параметр (значения true/false). Последний параметр определяет, использует ли Flash для контроля пересечения прямоугольную область, в которой содержится данный клип, или точную форму изображения в клипе. Во втором случае параметр должен быть равен true.
Исходный файл: Runaway.fla Вышеописанный код рассматривается в примере Runaway.fla. Если установить курсор над клипом, он переместится в случайную точку экрана.
Исходный файл: Collision.fla Для того чтобы определить, пересекаются ли два клипа, вы можете использовать один параметр – указатель на второй клип. В ролике Collision.fla на рабочем поле находятся два клипа. Клип большего размера называется "target", меньшего – "bullet". За пределами рабочего поля расположен клип "actions" со следующим кодом:
onClipEvent (enterFrame) {
// Auyniyai, iiiaea ee ioey a ieoaiu.
if (_root["target"].hitTest(_root["bullet"])) {
// Iiiaaaiea, oaaee.eaaai oaeu.
_root["target"]._xscale += 5;
_root["target"]._yscale += 5;
// Oae.aai ioe..
_root["bullet"]._x = 350;
} else {
// Iao iiiaaaiey, ioey eaoeo aaeuoa.
_root["bullet"]._x -= 5;
}
}Код задает перемещение снаряда на 5 пикселов. Если сталкиваются два клипа, мишень немного увеличивается за счет увеличения масштаба на 5 %. Горизонтальная координата снаряда принимает первоначальное значение, и он может опять начинать свое перемещение. Вы научились изменять масштаб клипа и его положение. Далее вы узнаете другие способы, с помощью которых можно изменить внешний вид клипа.
Урок 22. Изменения содержимого экранас помощью клипов
К сожалению, Flash не позволяет заменить один клип другим на рабочем поле. Единственным выходом будет удалить один клип и создать на его месте другой. Но если внешний вид клипа должен часто изменяться, необходим более быстрый способ.
Таким способом является создание клипа, который содержал бы все возможные состояния объекта. Например, если объектом является космический корабль, в ролик необходимо включить кадры, изображающие: космический корабль с выключенным двигателем, с включенным главным двигателем, включенным левым двигателем, с включенным правым двигателем, а также ряд кадров, представляющих взрывающийся космический корабль.
Исходный файл: Changingimages.fla
Данный пример демонстрируется в файле Changingimages.fla. Кнопки, расположенные слева от клипа, помогают выбрать отображаемую часть клипа. На рис. 3.7 изображен фрагмент ролика. Ролик целиком вы можете увидеть на Web-сайте.
Рисунок 3.7. Ролик Changingimages.fla позволяет отображать различные виды одного и того же объектаКаждая кнопка ролика Changingimages.fla задает перемещение клипа в определенный кадр. Приведем пример кода кнопки Up:
on (press) {
ship.gotoAndStop("up");
}Код кнопки Explode отличается от остальных, он использует команду gotoAndPlay, задающую перемещение клипа к кадру «explode» и продолжение воспроизведения:
on (press) {
ship.gotoAndPlay("explode");
}Клип включает последовательность из восьми кадров, которая начинается с кадра «explode» и изображает взрыв. Последний кадр последовательности содержит команду stop, задающую остановку воспроизведения клипа после взрыва. Просматривая ролик Changingimages.fla на Web-сайте, обратите особое внимание на временную шкалу клипа "ship". Здесь кадры маркированы таким образом, что код использует не номера, а имена кадров.
Урок 23. Ввод команд с клавиатуры
В предыдущем примере каждой части клипа соответствовала одна из пяти кнопок. Хотя основным средством управления во Flash-роликах являются кнопки, иногда в играх используется и прямой ввод с клавиатуры.
Существует два способа ввода с клавиатуры. Первый подразумевает особый вариант использования кнопок. Второй способ предполагает только код, который проверяет нажатие клавиш в определенный момент времени.
Для применения кнопочного метода создайте обычную кнопку Flash. Она не должна представлять из себя ничего особенного, так как будет расположена за пределами рабочего поля. Если кнопке назначен следующий код, она будет реагировать на клавишу r и использовать ее для перемещения клипа:
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.

