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

Викторина во Flash

Когда пользователь щелкает по одной из четырех кнопок, вызывается функция selectAnswer, которой передается номер выбранного ответа (от 0 до 3). Если эта величина равна correctAnswer, звучит сигнал правильного ответа и увеличивается значение numRight. В противном случае воспроизводится сигнал неверного ответа. В любом случае увеличивается значение переменной guestionNum и отображается следующий вопрос.

function selectAnswer(n) {
    // Добавляем очко, если ответ правильный,
    if (n == correctAnswer) {
        triggerSound("right");
        numRight++;
    }
    else {
        triggerSound("wrong");
    }
    // Отображаем следующий вопрос. 
    questionNum++;
    displayQuestion();
}

Функция triggersound проста, но очень полезна во многих игровых ситуациях. Ее назначение – проигрывать звук, сопровождающий правильный ответ.

function triggerSoundfsoundName) {
    // Проигрываем звук,
    soundfx.stop();
    soundfx = new Sound();
    soundfx.attachSoundfsoundName);
    soundfx.start();
}

Все это касается сценария основной временной шкалы. Однако есть еще два важных маленьких сценария, прикрепленных к другим элементам на рабочем поле. Первый прикреплен к каждому текстовому клипу. Он проверяет, находится ли клип правее положения xstop и, если это так, перемешает его дальше влево. В результате клип продолжает двигаться влево до тех пор, пока его положение не совпадет со значением переменной xstop. Следовательно, если клип располагается справа от экрана, с помощью функции animatein вопрос "въезжает" на экран.

onClipEvent(enterFrame) {
    if (_x != xstop)
        _x -= 20;
}

К каждой кнопке также прикреплен короткий сценарий, который при щелчке по ней вызывает функцию selectAnswer и передает ей значение от 0 до 3. Сценарий следующий:

on(release) {
    selectAnswer(0);
}

Для других кнопок вместо 0 будет указано либо 1, либо 2, либо 3.

К сведению

Вам понадобятся два звука, один с именем "right", а другой – "wrong". Также потребуется кнопка "continue", похожая на изображенную на рис. 12.3. Если у вас есть вопросы по работе программы, просмотрите ролик Flashquiz.fla.

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

Хотя цель игры заключается в отображении только 10 вопросов, ни одна строчка кода не ограничивает их число. Можно запросить большее или меньшее количество вопросов из файла Flashquiz.txt.

Вместе с выводом строки пользователю можно показывать некое сообщение. Например, при отображении строчки "8 out of 10" можно подбодрить пользователя следующим образом: "You know your planets!" (Вы знаете планеты!), а при двух не правильных ответах из 10 будет выводиться сообщение "Go back to school" (Снова идите в школу).

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