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

TEREX DEMAG терекс Демаг запчасти и ремонт кранов автокранов. |

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


// Проверяем, можно ли выстреливать следующую пулю,

if (getTinerO > nextBulletTime) {

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

attachMovie("bullet","bullet"+nextBullet, L.nextBullet+9999);
bullet = _root["bullet"+nextBullet];

// Устанавливаем координаты.

bullet._x = straw._x + Math.cos(strawRadians)*20;

bullet._y = straw._y + Math.cos(strawRadians)*20;

// Добавляем в массив информацию о пуле:

// clip = название клипа,

// angle = начальный угол,

// down = эффект гравитации.

bullets.push({clip:bullet.angle:strawRadians,down:0}

// Увеличиваем счетчик пуль.

nextBullet++;

nextBulletTime = getTimer()+1000;

}}

Функция moveBullets использует параметры angle и down каждого снаряда для перемещения их на определенное расстояние. Кроме этого параметр down увеличивается, чтобы создавался эффект гравитации.
Так как запушенный снаряд должен снова упасть на землю, прежде чем удалить его клип из массива, необходимо проверить, достиг ли он нижнего края экрана.

function moveBullets() {

// Перемещаем все снаряды.

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

// Определяем название клипа,

bullet = bullets[i].clip;

// Перемещаем клип.

bullet._x += Math.cos(bullets[i].angle)*10;

bullet._y += Math.sin(bullets[i].angle)*10;

// Добавляем искажение траектории

// из-за воздействия гравитации.

bullet._у += bullets[i].down;

// Увеличиваем значение параметра гравитации,

bullets[i].down += .2;

// Выясняем, достигла ли пуля земли,

if (bullet._у > 400) {

bullet.removeMovieClip();

bullets.splice(i,1);

// Определяем, есть ли попадение.

} else {

if (checkCollision(bullet)) {

bullet.removeMovieClip();

bullets.spliced(i, 1) ;

}}
}}




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