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

Найди лису

Создание кода

При загрузке клипа в нем создается массив found. Следующий код заполняет массив значениями false:

onClipEvent(load) {
    // Создаем массив, в который записываем, какие лисы
    // найдены.
    found = [];
    for (i = 0; i < 7; i++) {
        found[i] = false;
    }
}

При нажатии кнопки мыши положение курсора сохраняется в переменных х и у. Затем при помощи функции hitTest эти значения соотносятся с координатами клипов лис. Когда совпадение найдено, соответствующее изображение становится красным. Этого достаточно, чтобы изображение спрятанной лисы выделилось из фона. Каждый щелчок мышью запускает проверку массива found на наличие значения false. Это означает, что, по крайней мере, одна лиса еще не найдена. Когда все лисы найдены, клип переходит к следующему кадру:

onClipEvent(mouseDown) {
    // Определяем, в каком месте пользователь щелкнул мышью.
    x = _root._xmouse;
    y = _root._ymouse;
    // Проверяем, какое изображение лисы найдено,
    for (i = 0; i < 7; i++) {
        if (_roott "fox" + i], hitTest(x, y, false)) {
            // Изменяем цвет лисы.
            myColor = new Color(_root["fox" + i]);
            myColor.setTransform({
                rb: 128,
                bb: 0,
                gb: 0
            });
            // Запоминаем, что лиса найдена.
            found[i] = true;
            break;
            // Проверяем, все ли лисы найдены.
            gameover = true;
            for (i = 0; i < 7; i++) {
                if (found[i] == false) {
                    // Если хотя бы одна еще не найдена,
                    // игра не закончена.
                    gameover = false;
                    //если пользователь выиграл.
                    // Заканчиваем игру,
                    if (gameover) {
                        _root.gotoAndPlay("Game Over");
                    }
                }
            }
        }
    }
}

Команда break используется в цикле for и других для его немедленной остановки. Это удобно, когда по той или иной причине необходимо остановить цикл. В вышеприведенном коде цикл проходит значения от 0 до 6, но может завершиться в случае, если функция hitTest примет значение true.

К сведению

Игра включает еще два кода кнопок Play, один для окна начала, другой для окна завершения игры. Кроме того, все кадры содержат команду stop (), запрещающую переход ролика к следующему кадру.

Выбор цвета найденных объектов зависит от фона. В нашем примере фон состоит из зеленого, коричневого и голубого цветов, поэтому для пойманных лис мы выбрали красный цвет.

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

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

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

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