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

       

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


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

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) ;

}}
}}


Содержание  Назад  Вперед







Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий