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

Примечание

Функция getTimer() – это своеобразные часы. Функция возвращает количество миллисекунд, прошедших после начала ролика. Значение этих часов постоянно увеличивается, поэтому данную функцию удобно использовать для управления временными интервалами в вашей игре.

Функция onClipEvent(enterFrame) определяет, наступило ли время для появления следующей лисы. Затем она выбирает такое новое отверстие, которое не используется в данный момент. Интервал времени между появлениями лис сокращается на 10 миллисекунд, в результате чего игра с каждым разом все больше ускоряется. Если значение интервала составляет менее 1000 миллисекунд, игра завершается. За 150 секунд пользователь получает 100 возможностей поразить лису.

onClipEvent (enterFrame) {

// Определяем, не пора ли показывать следующую лису.

if (getTimer() >= nextFox) {

// Сокращаем время между показами.

timeBetweenFoxes -= 10;

// Выясняем, не пора ли заканчивать игру.

if (timeBetweenFoxes < 1000) {

_root.gotoAndPlay("End") ;

// Если нет, показываем следующую лису.

} else {

// Увеличиваем счетчик показанных лис.

numFoxes++;

_root.showScore = score + "/" + numFoxes;

// Определяем, какая лиса покажется. while (true) {

while (true) {

fox = Int(Math.Random()*18);

if (_root["fox"+fox]._currentFrame == 1) break;

}

// Выбранная лиса появляется из отверстия.

_root ["fox"+fox].gotoAndPlay ("popup") ;

// Устанавливаем время появления следующей лисы.

nextFox = getTimer() + timeBetweenFoxes;

}

}

}

Следующая функция обрабатывает нажатия кнопки мыши пользователя. Здесь используется тот же самый прием, что и в игре «Найди лису»: программа проверяет клипы на попадание по ним при помощи функции hitTest. Также программа проверяет, воспроизводится ли анимационная последовательность, в которой лиса выглядывает из отверстия. Кадр 1 клипа является статическим и представляет собой простое отверстие. Кадры 2-24 – это анимация лисы, которую поразил пользователь. Пользователь может щелкнуть по лисе только во время анимации, в которой лиса выглядывает из отверстия (эта анимация начинается с кадра 25). Таким образом, если номер кадра больше, чем 24, щелчок разрешается. В противном случае он игнорируется.

onClipEvent (mouseDown) {

// Определяем, по какому месту щелкнул пользователь.

x = _root._xmouse;

o = _root._ymouse;

// Проверяем на попадание всех лис.

for (i=0;i<18;i++) {

// Проверяем только выглядывающих лис.

if (_root["fox"+i]._currentFrame > 24) {

// Выясняем, попал ли пользователь по лисе.

if (_root["fox"+i].hitTest(x,y,false)) {

// Воспроизводим анимацию, соответствующую попаданию.

_root["fox"+i].gotoAndPlay("whack");

// Увеличиваем количество очков.

score++;

_root.showScore = score + "/" + numFoxes;

}

}

}

}

К сведению

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

Другие возможности

Имейте в виду, что клипы, изображающие лис, не обязательно должны быть одинаковыми. Сценарий реагирует только на метки «whack» (удар) и «popup» (выглядывающая лиса), а после 24 кадра еще и на начало анимации выглядывающей лисы. Вы можете использовать несколько клипов, изображающих разных лис. Необходимо лишь убедиться, что они достаточно похожи для того, чтобы код мог их обрабатывать, а также присвоить им соответствующие имена при размещении экземпляров клипов на рабочем поле. Использование различных лис сделает игру интереснее.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных