Поймай хорошее яблоко
Поймай хорошее яблоко
Исходный файл: Applelettercatch.fla
В данном примере в предыдущую игру будет добавлено "плохое яблоко". Это довольно просто сделать. Давайте усложним задачу и сделаем так, чтобы хорошие и плохие яблоки выглядели по-разному.
На каждом падающем яблоке будет нарисована буква. В зависимости от того, гласная это или согласная, яблоко будет считаться хорошим или плохим.
На рис. 9.4 показан кадр из новой игры с несколькими падающими яблоками. Данный пример содержится в файле Applelettercatch.fla на Web-сайте.
Рисунок 9.4. Элементами игры «Поймай хорошее яблоко» являются яблоки с нарисованными буквами
Задача проекта
Задача проекта – так изменить игру «Поймай яблоко», чтобы учитывалось различие букв (гласные/согласные). Поймав любое яблоко с нарисованной гласной буквой, игрок получит очко, поймав яблоко с согласной, он потеряет очки. При этом счет не может быть меньше 0.
Подход
В игре «Поймай яблоко» единственный клип яблока в библиотеке содержал статическое изображение, состоящее из одного кадра. Для показа различных типов яблок нам понадобится два разных клипа, один для хороших яблок, другой для плохих. Кроме этого, каждый клип будет состоять из множества кадров с изображениями различных яблок. Клип хорошего яблока будет состоять из 5 кадров, соответствующих гласным. Клип плохого яблока будет состоять из 20 кадров, представляющих согласные звуки. Буква "Y" использоваться не будет.
Когда наступает время бросать яблоко, оно может с равной степенью вероятности оказаться как хорошим, так и плохим. Код отобразит произвольный кадр из соответствующего клипа.
После того как игрок поймает яблоко, код определит его тип и соответственно изменит счет.
Подготовка ролика
В библиотеке ролика на Web-сайте вы увидите два клипа яблока. Первый, «bad apple», содержит 20 кадров. Каждый кадр включает изображение яблока и согласной. Другой клип, «good apple», содержит 5 кадров для 5 гласных. На рис. 9.5 изображено основное окно Flash, открытое на клипе «bad apple».
Рисунок 9.5. Клип «bad apple» состоит из 20 кадров. Каждый кадр содержит изображение яблока и одного из согласных звуков
В диалоговом окне Symbol Linkage Properties обоим клипам будет назначено свойство Export for ActionScript и присвоен идентификатор «good apple» или «bad apple».
Создание кода
Код клипа «actions» аналогичен тому, что использовался в игре «Поймай яблоко». Изменятся только функции.
В функцию initGame было внесено лишь одно изменение: число падающих яблок было увеличено до 50.function initGame() {
// Инициализация переменных, хранящих
// номера первого и последнего яблока.
firstApple = 1;
lastApple = 0;
// Инициализация переменной, хранящей число пойманных яблок.
score = 0;
// Задаем общее количество яблок.
totalApples = 50;
// Скорость падения и счетчик времени между появлениями яблок.
timeSinceLastApple = 0;
appleSpeed = 5;
// Создаем экземпляр клипа, содержащий лису.
attachMovie("running fox","fox",999999);
fox._x = 275;
fox._y = 300;
}Функция moveFox полностью совпадает с аналогичной функцией игры «Поймай яблоко», поэтому нет смысла повторять ее здесь. Функция dropNewApple будет отличаться, так как она должна выбирать, какое яблоко бросать, а затем отображать произвольный кадр выбранного клипа.
function dropNewApple() {
// Проверяем, прошел ли заданный промежуток времени.
if (timeSinceLastApple > 20) {
// Бросаем яблоко, если не превышено
// их предельно допустимое количество.
if (lastApple < totalApples) {
// Устанавливаем вероятность сброса яблока в 10 %.
if (Math.random() < .1) {
// Создаем объект-яблоко.
lastApple++;
if (Math.random() < .5) {
// В 50 % случаев яблоко плохое.
attachMovie( "bad apple", "apple"+lastApple, lastApple);
_root["apple"+lastApple].type = "bad";
} else {
// В 50 % случаев яблоко хорошее.
attachMovie( "good apple", "apple"+lastApple, lastApple);
_root["apple"+lastApple].type = "good";
}
f=int(Math.Random()*_root["apple"+
lastApple]._totalFrames) + 1;
trace(f);
_root["apple"+lastApple].gotoAndStop(f);
_root["apple"+lastApple]._x = Math.random()*490+30;
_root["apple"+lastApple]._y = 0;
// Сбрасываем счетчик времени ожидания.
timeSinceLastApple = 0;
// Увеличиваем скорость падения яблока.
if (appleSpeed < 10) appleSpeed += .5;
}
}
}
// Если не бросили яблоко, приближаем это событие.
timeSinceLastApple++;
}Функция dropNewApple создает переменную type для каждого клипа. Хотя данные клипы не имеют внутри себя сценария, для них можно определять переменные. Поэтому переменная type для гласных звуков будет иметь значение «good», для согласных – bad". Данная переменная проверяется в функции moveApples, когда игрок ловит яблоко. Таким образом, можно определить, поймал ли игрок хорошее яблоко или плохое.
function moveApples() {
// Проверяем все летящие яблоки.
for (i=firstApple;i<=lastApple;i++) {
// Определяем местоположение яблока.
x = _root["apple"+i]._x;
o = _root["apple"+i]._y + appleSpeed;
// Выясняем, достигло ли яблоко земли.
if (y > 400) {
removeApple(i);
// Попало ли в яблоко корзину?
} else if ((Math.abs(y-fox._y) < 10) and (Math.abs(x-fox._x) < 25)) {
if (_root["apple"+i].type == "good") {
// Если яблоко хорошее, увеличиваем очки.
score += 1;
} else {
// Если плохое – уменьшаем.
score -= 1;
// Проверяем, чтобы количество очков
// не было отрицательным числом.
if (score < 0) score = 0;
}
removeApple(i);
// Продолжаем перемещать яблоко.
} else {
_root["apple"+i]._y = y;
}
}
}Функция removeApple аналогична соответствующей функции в игре «Поймай яблоко».
К сведению
Как и в игре «Поймай яблоко» перед и после кадра «play» находятся соответственно кадры «start» и «game over». Не забудьте также о текстовой области «score» и других компонентах, упомянутых в разделе «К сведению» для предыдущей игры.
Другие возможности
Это обучающая игра и, к сожалению, подходит лишь для маленьких детей, еще не выучивших алфавит. Однако вы можете изменить содержимое каждого кадра, содержащего хорошее или плохое яблоко. Одним из вариантов может быть увеличение яблока, для того чтобы на нем могла поместиться более длинная фраза.
Вариантом для детей более старшего возраста могут быть яблоки, включающие глаголы и существительные. Они также могут содержать четные и нечетные числа, числа кратные трем или сокращаемые дроби. Дети еще более старшего возраста могут выбирать страны определенного континента или названия деревьев. Игра может иметь любую тему, главное, чтобы на вопросы можно было дать ответ "верно/неверно".Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Можете ли вы с помощью графики создать хорошее впечатление о своей компании?
Можете ли вы с помощью графики создать хорошее впечатление о своей компании? Разумеется, все графические изображения на сайте нужно выполнить в одном стиле. И по качеству, и по внешнему виду, и по создаваемому настроению они не должны выбиваться из общей картины. Пусть
Поймай лису
Поймай лису Исходный файл: Whackfoxfla Одна из игр в залах игровых автоматов прошлых лет называлась "Поймай крота". Игровое поле представляло собой плоскость, в отверстиях которой появлялись небольшие объекты, похожие на кротов. При помощи мягкого молотка, обычно привязанного
Глава 9 Игры типа "Поймай или пропусти"
Глава 9 Игры типа "Поймай или пропусти" • Поймай яблоко• Поймай хорошее яблоко• Сплав на байдарке• ГонкиМногие игры в сети могут быть отнесены к разряду игр «Поймай или пропусти». Они имеют следующие характерные черты: игрок управляет объектом или действующим лицом,
Поймай яблоко
Поймай яблоко Исходный файл: Applecatch.fla В первой игре "Поймай яблоко" лиса будет двигаться в нижней части экрана и пытаться поймать яблоки, падающие с дерева. На рис. 9.1 показан фрагмент игры. Полный ролик находится на Web-сайте в файле Applecatch.fla. Рисунок 9.1. Элементами игры
WWDC 2013 — Яблоко с твиками из Сидии? Сергей Голубицкий
WWDC 2013 — Яблоко с твиками из Сидии? Сергей Голубицкий Опубликовано 11 июня 2013 Вчера вся (наша) надкусанная тусовка не дышала, не спала, не отвлекалась: яблофаны жили переживаниями открытия конференции разработчиков WWDC 2013 — события, от которого ждали
Впервые надкусывая яблоко: Непутевые заметки про iMac
Впервые надкусывая яблоко: Непутевые заметки про iMac Автор: Родион НасакинОбидно, но я не смог по достоинству оценить прелести iMac, временно поселившегося у нас в редакции, равно как и установленную на нем последнюю версию Mac OS по той простой причине, что сел за Мак первый
По зубам ли «Яблоко» Тиму Куку? Михаил Карпов
По зубам ли «Яблоко» Тиму Куку? Михаил Карпов Опубликовано 25 августа 2011 года Об отставке основателя Apple Стива Джобса наверняка будут спорить ещё долго. Оптимисты надеются, что уход Джобса не повредит Apple. Его вряд ли возможно заменить, но он собрал
Дмитрий Вибе: Хорошее отношение к инопланетянам Дмитрий Вибе
Дмитрий Вибе: Хорошее отношение к инопланетянам Дмитрий Вибе Опубликовано 02 декабря 2011 года Меня за последнее время пару раз позвали «в телевизор» высказать своё мнение о летающих тарелках. Я, как и подобает строгому научному работнику, говорил