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

Игра совпадений

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

Прежде чем проверить эти три условия, функция clickCard определяет, перевернуты ли уже две карты. Если да, значит, игрок уже выбрал две карты, но они не совпали. Прежде чем перевернуть следующую карту, эти две карты поворачиваются рубашками вверх.

function clickCard(clip) {
    // Проверяем, отображены ли две карты,
    if (secondclip != 0) {
        // Располагаем эти две карты рубашками вверх,
        firstclip.gotoAndStop(1);
        secondclip.gotoAndStop(1);
        firstclip = 0;
        secondclip = 0;
    }
    // Проверяем, щелкнул ли пользователь дважды
    //по одной и той же карте,
    if (firstclip == clip) {
        // Переворачиваем карту,
        firstclip.gotoAndStop(1);
        firstclip = 0;
        // Выясняем, есть ли хоть одна перевернутая карта.
    }
    else if (firstclip == 0) {
        // Переворачиваем первую карту,
        clip.gotoAndStop(clip.picture + 1);
        firstclip = clip;
        // Одна карта должна быть перевернута
    }
    else {
        // Переворачиваем вторую карту.
        clip.gotoAndStop(clip.picture + 1);
        secondclip = clip;
        // Проверяем, совпадают ли карты.
        if (firstclip.picture == secondclip.picture) {
            // Удаляем обе карты.
            firstclip.removeMovieClip();
            secondclip.removeMovieClip();
            firstClip = 0;
            secondclip = 0;
        }
    }
}

Вот все, что нужно для игры. У кнопки внутри клипа "Cards" только одна строчка кода, которая передает основной временной шкале информацию о том, что по клипу щелкнули.

on(press) {
    // Передаем основной временной шкале информацию о щелчке мышью
    _root.clickCard(this);
}

К сведению

Не забудьте вставить команду stop () в первый кадр клипа "Cards". В противном случае во всех картах будут отображаться все картинки.

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

Самый простой способ изменить эту игру – добавить фоновый рисунок, который будет отображаться за картами. Картинки на картах могут соответствовать теме фоновой картинки. Вы можете выбрать практически любую тему. Также в первый кадр клипа "Cards" нетрудно добавить картинку для рубашки карты.

Хотя в примере 36 карт, ничто не мешает вам уменьшить или увеличить это число. Просто не забудьте откорректировать размер сетки, а также длину массива в начале игры. Если число карт не будет вписываться в квадратную сетку, вам понадобится изменить код или написать новый, чтобы определить расположение карт.

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

Если вы хотите, чтобы игра определяла, когда найдены все совпадения, добавьте счетчик, который будет увеличиваться при каждом совпадении. Когда счетчик станет равен 18, игра закончится. Затем можно перейти к кадру "you win".

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