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

Игра на развитие памяти

Кадр "play" проигрывает каждую мелодию из последовательности в соответствии со сценарием, прикрепленным к клипу "playback actions". Сценарий начинается с того, что устанавливает две переменные. Переменная noteNum следит за тем, какое сообщение должно быть проиграно следующим, а переменная nextTime – когда оно должно быть проиграно.

onClipEvent(load) {
    // Начинаем с мелодии, под номером 0.
    noteNum = 0;
    nextTime = 0;
}

На каждом шаге ролика в кадре "play" текущее время сравнивается со значением переменной nextTime. Если текущее время превышает это значение, проигрывается следующая мелодия. Анимация пения и птицы инициализируются точно так же, как если бы они вызывались при щелчке мышью. Затем изменяются значения переменных noteNum и nextTime, чтобы подготовиться к воспроизведению следующей мелодии. Переменная nextTime увеличивается на 1000, то есть следующая мелодия будет проиграна через одну секунду. Когда будут проиграны все сообщения, ролик вызовет функцию startRepeat, которая была рассмотрена ранее. То есть игра перейдет к кадру "repeat" и будет ждать, когда пользователь попытается восстановить последовательность.

onClipEvent(enterFrame) {
    // Выясняем, пришло ли время проиграть следующую мелодию,
    if (getTimer() > nextTime) {
        // Получение сообщения,
        note = _root.notes[noteNum];
        // Проигрывается анимация пения
        //и соответствующий звуковой файл.
        _root["bird" + note].gotoAndPlay(2);
        _root["Mnote" + note].gotoAndPlay(2);
        // Ждем одну секунду, прежде чем проиграть следующую
        // мелодию.
        nextTime = getTimer() + 1000;
        noteNUm++;
        // Если больше сообщений нет, продолжаем со следующего
        // шага.
        if (noteNum > _root.notes.length) {
            _root.startRepeat();
        }
    }
}

Каждая кнопка, расположенная на рабочем поле в кадре "repeat", при щелчке по ней должна вызывать функцию clickBird. Каждый из четырех сценариев немного отличается от остальных, так как они должны передать функции различные числа. Вот сценарий для одной из кнопок:

on(press) {
    clickBird(1);
}

К сведению

Во всех шести кадрах ролика должна быть команда stop (). В кадрах со второго по шестой это единственная команда.

В кадрах "wait", "correct" и "wrong" находятся кнопки. В кадре "wait" кнопка переводит игру к кадру "play", где проигрывается последовательность мелодий. Кнопка кадра "correct" снова переносит игрока к кадру "play". Однако также должна быть вызвана функция addNewNote, чтобы добавить сообщение в последовательность.

on(press) {
    addNewNote();
    gotoAndPlay("play");
}

Кнопка в кадре "wrong" переводит ролик к кадру "start", где можно заново начать игру.

Также не забудьте добавить текстовое поле, связанное с переменной scoreDisplay, чтобы игроки знали о результатах своей игры.

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

Тема игры может быть любой. Достаточно изменить фон и вид элементов. Количество элементов зависит о того, насколько сложной вы хотите сделать игру.

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