Иллюстрированный самоучитель по Flash-games


Создание кода - часть 3


// Перемещаем все шары,

for(i=balloons.length-1;i>=0;i--) {

// Определяем скорость шара

//и получаем ссылку на клип,

dx = balloons[i].d; balloon = _root[balloons[i].clip];

// Перемещаем шар.

balloon._x += dx;

// При вылете за экран шар удаляется,

if ((dx < 0) and (balloon._x < -20)) {

balloon.removeMovieClip() ;

balloons, splice (i,l);

} else if ((dx > 0) and (balloon._x > 570) balloon.removeMovieClip();
balloons.splice(i,1);

// Если шары закончились, игра завершается.

if ((nextBalloon >= numBalloons) and (balloons.length < 1)){

gotoAndStop("game over");

}}

Функция moveFox определяет, нажаты ли клавиши со стрелками «влево» или "вправо", и перемешает лису на 10 пикселов влево или вправо при нажатии соответствующей клавиши. Как и в предыдущих играх, параметр _xscale клипа, содержащего лису, используется для поворота лисы. Функция также задает переход клипа к анимационной последовательности (изображает идущую лису и начинается в кадре 2), а также к кадр (изображает стоящую лису).

function moveFox () {

// Подвинуть лису влево.

if (Key.isDown (Key.LEFT)) {
dx = -10;

fox._xscale = Math.abs(fox._xscale);

// Подвинуть лису вправо, перевернув ее клип по вертикали.

То есть изменив знак у свойства _scale, мы создаем зеркальное отражение клипа; лиса теперь идет в другую сторону.

}else if (Key.isDown(Key.RIGHT)) { dx = 10;

fox._xscale = -Math.abs(fox._xscale);

// Иначе лиса не двигается.

} else {
dx = 0;

// Перемещаем лису.
fox._x += dx;

if ((dx == 0) and (fox._currentFrame != 1)) {

// Переходим к кадру, в котором лиса стоит,

fox.gotoAndStop(1);

} else if ((dx != 0) and (fox._currentFrame == 1)) {

// Переходим к кадру, где лиса бежит.

fox.gotoAndPlay(2);

}
}

Для того чтобы выстрелить, пользователь должен нажать на клавишу пробела. На нажатие клавиши реагирует скрытая кнопка, которая вызывает функцию shootBullet. Код кнопки будет рассмотрен далее, в разделе "К сведению".
Функция shootBullet проверяет, прошло ли достаточно времени после предыдущего выстрела. Это не дает игроку возможности стрелять залпом по всем мишеням.
Подобно шарам снаряды представлены одновременно клипом и элементом массива, в данном случае массива bullets. Массив используется функцией moveBullets для осуществления выстрелов.
Обратите внимание, что движение клипа, содержащего снаряд, начинается в точке, расположенной в 2 пикселях вправо и 55 пикселях влево от центра клипа лисы. Эта точка соответствует кончику соломинки.




Начало  Назад  Вперед



Книжный магазин