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


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


Небольшие объекты можно создавать при помоши обычных скобок как видно из последней строки функции initLamp: bubbles [1]= {speed:0}. К содержанию таких объектов можно затем обратиться при помощи точечного синтаксиса: bubbles [0]. speed. При этом ваш код станет более разборчивым, а элемент переменной или массива, сможет состоять из нескольких частей. Например, вы можете записать строку myobject = {speed: б, weight: 40, clipname: "clip1"}, а затем для получения значений использовать синтаксис myObject.speed. Такой объект аналогичен структуре из языков высокого уровня, например С или Pascal.

// Перемещаем пузырьки,

function moveBubbles () {

for (i=0; i

// Узнаем текущую координату.

у = _root["Bubble"+i]._y;

// Останавливаемся, если достигнута нижняя граница

// объекта "лампа".

if

bubbles[i].speed = 0;

// Останавливаемся, если достигнута верхняя граница

// объекта.

} else if ((bubbles[i].speed < 0) and (y < top)) {

bubbles[i].speed = 0;

// Продолжаем перемещать пузырьки.

} else {

// Перемещаем.

_root["Bubble"+i]._y = y+bubbles[i].speed;

// Изменяем размеры пузырька.

height = _root [ "Bubble" + i] ._yscale;

width = _root["Bubble"+i]._xscale;

if (height > width) height -= 1;

_root["Bubble"+i]._yscale = height;

// Создаем новый пузырек с вероятностью 1/30.

if (Math.random()*30

newBubble();
}

}

Функция newBubble проверяет массив bubbles на наличие неиспользуемых мест для пузырьков. Затем она создает пузырек в нижней или верхней части лампы. Размер пузырька задается случайным числом. Его длина в три раза больше, чем ширина. По мере перемещения пузырька эта разница постепенно исчезает.

function newBubble () {

for (i=0; i<numBubbles;i++) {

// Находим пустое место для пузырька,
if (bubbles[i].speed == 0) {

// Создаем пузырек в верхней части лампы.

if (Math.random() < .5) {

bubbles [i].speed = 1 ;

_root["Bubblen+i]._y = -40;

// Создаем пузырек в нижней части лампы.

} else {

bubbles[i].speed = -1 ;

_root ["Bubble"+i ]._y = 340;

}

// Устанавливаем размер пузырька.

size = 40+ Math, random ()*40;

_root["Bubble"+i]._xscale = size;

_root["Bubble"+i]._yscale = size*3;

_root["Bubble"+i]._x = 10+Math. random ()*80;

// Готово.

break;}

}

}

Три вышеприведенные функции составляют основу ролика Lava Lamp который вы можете просмотреть, запустив файл Lavalamp.fla




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



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