Поймай хорошее яблоко
Создание кода
Код клипа "actions" аналогичен тому, что использовался в игре "Поймай яблоко". Изменятся только функции. В функцию initGame было внесено лишь одно изменение: число падающих яблок было увеличено до 50.
Рис. 9.5. Клип "bad apple" состоит из 20 кадров. Каждый кадр содержит изображение яблока и одного из согласных звуков:
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
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
+
+
;
}