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


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


function shipFire() {

// Выясняем, достаточно ли времени прошло

//с момента последнего выстрела.

if (timeOfLastFire+200 < getTimer()) {

// Запоминаем, когда производится этот выстрел.
timeOflastFire = getTimer();

// Создаем пулю.

level++;

attachMovie("bullet", "bullet"+level, level);

// Определяем положение и направление движения пули,

clip = _root["bullet"+level];

clip._x = ship._x;

clip._y = ship._y;

clip.dx = 10.0*Math.cos(2.0*Math.PI*-(ship._rotation-90)/360.0);

clip.dy = 10.0*Math.sin(2.0*Math.PI*(ship._rotation-90)/360.0) ;

// Добавляем элемент массива

bullets, bullets.push(clip);
}}

В каждом кадре корабль перемешается на один шаг: для этого увеличиваются значения свойств _х и _у на величины dx и dy соответственно. Если корабль слишком далеко подвинулся вправо, то есть за пределы рабочего поля, то из значений этих свойств вычитается 550 пикселов, чтобы корабль появился с противоположной стороны экрана. Аналогичные действия производятся для левой, нижней и верхней границ рабочего поля.

function shipMove() {

// Перемещаем корабль по горизонтали или, если нужно,
//на противоположную сторону экрана.

ship._x += ship.dx;

if (ship._x > 550) ship._x -= 550;

if (ship._x < 0) ship._x += 550;

// Перемещаем корабль по вертикали или, если нужно,

//на противоположную сторону экрана.
ship._y += ship.dy;

if (ship._y > 400) ship._y -= 400;

if (ship._y < 0) ship._y += 400;
}

Пули двигаются так же, как и корабль. Однако необходимо просматривать весь массив bullets, чтобы перемешать все пули. Если пуля вылетает за границу экрана, она удаляется, а не появляется с противоположной стороны.

function bulletsMove() {

// Передвигаем все пули.

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

// Перемещаем пулю по вертикали и горизонтали,

bulletsti]._х += bullets[i].dx;

bullets [ij ._y += bullets [i] .dy;

// Выясняем, вылетела ли пуля за границу экрана,

if ((bullets[i]._x > 550) or (bullets[i]._x < 0) or (bullets[i]._y > 400) or (bullets[i]._y < 0)) {




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



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