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

Викторина с учетом времени

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

function selectAnswer(n) {
    // Правильный ответ,
    if (answer[n] == correctAnswer) {
        triggerSound("right");
        // Увеличиваем счет,
        score += potentialPoints;
        // Выводим следующий вопрос,
        questionNum++;
        displayQuestion();
    }
    else {
        // Неправильный ответ.
        triggerSound("wrong");
        // Уменьшаем количество возможных очков.
        potentialPoints -= 200;
        if (potentialPoints < 0)
            potentialPoints = 0;
        // Удаляем ответ.
        _root["answer" + n].text = "";
    }
}

Функция triggerSound работает точно так же, как и в предыдущей игре. Она просто воспроизводит короткий звуковой сигнал.

function triggerSound(soundName) {
    // Воспроизводим звук,
    soundfx.stop();
    soundfx = new Sound();
    soundfx.attachSoundtsoundName();
    soundfx.start();
}

Другие фрагменты кода кадра "play" включают небольшую часть для клипа "actions", который вызывает метод scoreCount.

onClipEvent(enterFrame) {
    root.scoreCount();
}

Код для каждого из четырех клипов ответа также используется в программе (здесь представлен код только для одного клипа). Обратите внимание, что клип движется в два раза быстрее, чем в предыдущей игре.

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

В каждой из четырех кнопок содержится сценарий, инициирующий при ее нажатии функцию selectAnswer. Кнопки реагируют не только на щелчок мыши, для каждой кнопки определена клавиша на клавиатуре. Например, первая кнопка, которую вы видите, помечена "А" (рис. 12.4), она реагирует на нажатие клавиши "А".

on(release, keyPress "A") {
    selectAnswer(0);
}

К сведению

Внимательно просмотрите каждый элемент ролика Flashtrivia.fla. В нем находятся текстовые поля: для вопроса, четырех ответов, количества возможных очков и счета. Каждая кнопка представляет собой копию одного и того же клипа, вверху нее расположен статический символ. Эти символы лишь напоминают пользователю, что он может нажать соответствующую клавишу на клавиатуре вместо того, чтобы щелкнуть по самой кнопке.

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

Как и в предыдущей игре, в текстовый файл можно поместить столько вопросов, сколько вы хотите. Если вы знакомы с программированием CGI, вы даже можете написать программу для сервера, которая будет генерировать файл Flashtrivia.txt на основе базы данных вопросов.

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

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