Сам себе девелопЕр!

Xakep, номер #038, стр. 038-070-3


Теперь добавим еще один код:

onClipEvent (enterFrame) {

this._x+=laserMoveSpeed;

if (this._x>500){

this.removeMovieClip();

}

}

Этот код передвигает лазер в правую сторону экрана. Значение 500 означает, что лазер виден лишь в данных пределах экрана, а затем он возвращается на текущую позицию. Команда "this.removeMovieClip()" вытирает лазер по пересечению значения 500.

Задний фон и создание эффекта движения

Для создания эффекта движения тебе придется создать анимированный задний фон. Для начала создай новый слой, назови его ground и нарисуй на нем задний фон. Учти, что твой фон должен быть максимально разнообразным, иначе ты не сможешь получить эффект движения. Также постарайся, чтобы в начале и в конце задний фон был идентичен (это потребуется нам позднее). Когда все будет готово - конвертни его в элемент (F8), на панели Instance выставь значение "Movie Clip" и назови новый объект ground. Теперь продублируй объект, повтори все те же действия (F8, CTRL+I, "Movie Clip") и присвой ему имя ground2. Перемести ground2 вправо так, чтобы конец ground был плотно (помнишь, я говорил об идентичности) состыкован с началом ground2. Окрась ground и ground2 и преврати (F8) их в новый элемент. Используя Instance, назови получившийся объект mainGround со значением "Movie Clip". Зачем мы проводили столь сложную операцию? Все очень просто. Чтобы не двигать несколько слоев (слишком муторно), мы используем эффект подмены, двигая основной фон. Для воплощения эффекта в жизнь давай добавим следующий код к mainGround. Используй Actions и введи следующие значения:

onClipEvent (load) {

ground.duplicateMovieClip("ground2", 100);

ground2._x = ground._x+ground._width;

groundStartx = this._x;

groundSpeed = 55;

}

onClipEvent (enterFrame) {

this._x -= groundSpeed;

if (this._x<=(groundStartx-ground._width)) {

this._x = groundStartx-groundSpeed;

}

}

Данный код активируется при загрузке игры. Строчка "ground.duplicateMovieClip" дублирует фон и использует ground2 в качестве базового источника. Следующие две строчки размещают фон и указывают точку движения. Скорость устанавливается на следующей строке. В данном случае она равняется 55, что создает эффект очень быстрого полета. При желании значение можно изменить. Начиная со строки onClipEvent (enterFrame), задается цикличность процесса. Строчка "_x-=groundSpeed" отвечает за скорость смещения фона согласно с установленным выше значением (55). Строчка "if (this._x<=(groundStartx-ground._width))" проверяет исполнение команды движения, отслеживая перемещения фона за отведенные границы. Если все в порядке, то строка "this._x = groundStartx-groundSpeed" возвращает фон на стартовую позицию. Проверь полученный результат, используя предварительный просмотр File>Publish Preview (F12). Твой корабль должен перемещаться по всей оси координат и стрелять, фон должен реалистично перемещаться, создавая эффект движения. Если все ОК, то перейдем к созданию врагов.

Назад на стр. 038-070-2  Содержание  Вперед на стр. 038-070-4