Головоломки Flash

         

Добавляем новые астероиды, количество которых


function startLevel() {

// Корабль не движется,

ship.dx = 0.0;

ship.dy = 0.0;

// Создаем новые массивы,

bullets = new Array();
rocks = new Array();

// Начинаем игру с нулевым уровнем клипа,
level = 0;

// Добавляем новые астероиды, количество которых на единицу

// больше значения переменной

gamelevel. tor(i=0; i

newRock{100,0,0) ;}

// Можно стрелять сразу же.

timeOfLastFire = 0;}

Следующий набор функций состоит из функций, реагирующих на нажатие клавиш. Все они так или иначе управляют кораблем. Первая функция поворачивает корабль на определенный угол. Если вы еще раз посмотрите, как кнопка "button" вызывала эту функцию, то заметите, что в первом случае функции сообщалось значение 30, а в другом -30. При этом корабль поворачивается на угол 30° в том или ином направлении.



function shipTurn(amt) {

// Поворачиваем корабль,

ship._rotation += amt;}

Следующая функция активизирует ускорители. С помощью функций Math.cos и Math.sin она преобразует угол поворота корабля в горизонтальную и вертикальную компоненты. К сожалению, свойство клипа _rotation представлено в градусах, а две математические функции требует величины в радианах. Для перевода значения из градусов в радианы необходимо из величины „rotation вычесть 90° (чтобы 0° находился в верхней точке окружности, а не в правой), а затем умножить на 2? и разделить на 360.

function shipThrust() {

// Перемещаем корабль туда, куда направлен его нос.

ship._dx += Math.cos(2.0*Math.Pi*(ship._rotation-90)/360.0);

ship._dy += Math.sin(2.0*Math.Pi*(ship._rotation-90)/360.0);

// Показываем, как включаются ускорители,

ship.gotoAndPlay("thrust");}

С другой стороны, когда игрок нажимает клавишу со стрелкой "вниз", можно легко остановить корабль, обнулив свойства dx и dy.

function shipBreak() {

// Останавливаем корабль.

ship.dx = 0;

ship.dy = 0;}

Когда игрок нажимает клавишу Пробел, корабль должен выстрелить. Однако сначала проверяется, достаточно ли времени прошло с момента последнего выстрела.
С помощью клипа "bullet" генерируется пуля, свойства dx и dy создаются и устанавливаются так же, как и для корабля. А в массив bullets добавляется указатель на клип, чтобы потом можно было легко к нему обратиться.


Содержание раздела