Создание кода
Создание кода
В трех кадрах "level1", "level2" и "level3" у вас будут клипы "actions", которые вызывают необходимые для игры функции. В начале уровня вызывается только одна функция, а в течение игры постоянно - другая.
onClipEvent(load) {
_root.startLevel();
} onClipEvent(enterFrame) {
_root.moveShip(); }
Обе эти функции расположены в основной временной шкале первого кадра. Сценарий ролика начинается с функции startGame, которая вызывается, когда в первом кадре игрок щелкает по кнопке Play. Она устанавливает значение переменной gameLevel, отображаемое в текстовом поле в верхнем правом углу экрана. Затем с помощью функции startLevel начинается первый уровень.
function startGame() {
gameLevel = 1;
startLevel(); }
Функция startLevel выполняет множество задач. Сначала она переводит ролик к кадру в соответствии со значением переменной gameLevel, затем помешает корабль вверху экрана. Скорость корабля, которая определяется величинами dx и dy, обнуляется. Для увеличения скорости корабля и для того, чтобы он начал двигаться вниз, используется переменная gravity.
В массивах hitPoints и footPoints содержатся координаты некоторых точек относительно центра корабля. Для определения, коснулся ли корабль поверхности луны, используются элементы массива hitPoints. А оба элемента массива footPoints нужны, чтобы определить, находятся ли обе опоры лунохода на посадочной площадке.
В массиве pads хранятся имена трех клипов посадочных площадок. На одном уровне имеется всего лишь две посадочные площадки, но язык ActionScript этого не учитывает.
function startLevel() {
gotoAndStop("level"+gameLevel);
// Размещаем клип корабля.
ship._x = 275;
ship._x = 25;
// Корабль не движется.
ship.dx = 0;
ship.dy = 0;
// Инициализируем гравитацию.
gravity = .1;
// Инициализируем индикатор горючего.
fuel = 100;
showFuel();
// Определяем точки корабля, которые могут коснуться
// поверхности Луны.
hitPoints = new Array();
hitPoints.push({x:-9, у: 13});