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

Лавовая лампа

// Перемещаем пузырьки,
function moveBubbles() {
    for (i = 0; i
    // Узнаем текущую координату.
    y = _root["Bubble" + i]._y;
    // Останавливаемся, если достигнута нижняя граница
    // объекта "лампа".
    if ((bubbles[i].speed > 0) and (y > bottom)) {
        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 <= 1) {
            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.

Другие возможности

Изображение стекла было создано аналогично пузырькам. Благодаря применению свойства альфа-прозрачности сквозь него видны пузырьки Для того чтобы ролик вписывался в ваш сайт или проект, вы можете украсить его своим логотипом.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.