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


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


Почти весь код этой игры находится в основной временной шкале. Ролик начинается с вызова функции initGame, которая создает список 18 пар карт, случайным образом выбирает карты из первого списка, а затем помешает их во второй список, чтобы перемешать колоду карт.
Потом функция создает 36 карт. Каждый клип автоматически начинается с того, что карта помещается рубашкой вверх, а свойству клипа ("picture") присваивается номер картинки, которую карта будет представлять.

initGame();

stop();

function initGame() {

// Создаем отсортированный список карт.
cardsListOrdered = [];

cardsListOrdered.push(i,i);
}

// Список перемешанных карт.

cardsListSorted = [];

while (cardsListOrdered.length > 0) {

r = int(Math.random()*cardsListOrdered.length);

cardsListSorted.push(cardsListOrdered[r]};

cardsListOrdered.splice(r,1);}

// Создаем клипы карт и определяем их положение и картинки,
х = 0; У = 'О; for(i=0;i

attachMovie("card", "card" + i, i) ;

_root["card"+i].picture = cardsListSorted[i];

_root["card"+i]._x = x*60+200;

_root["card"+i]._y = y*60+50;

// Переходим к следующей карт

х++;

if (х > 5) {

х = 0;

У++;
}}

// Располагаем эти две карты рубашками вверх,

firstclip.gotoAndStop(1);

secondclip.gotoAndStop(1);

firstclip = 0; secondclip = 0;

firstdip = 0;
}

Обратите внимание, что с помощью команды push в массив можно добавить сразу более одного элемента, Например, выражение myArray.push(7,12) добавит в массив myArray числа 7 и 12.

Функция initGame заканчивается тем, что обнуляется переменная firstclip. В этой переменной содержится ссылка на карту, по которой щелкнули первой. Когда щелкают по клипу, кнопка внутри этого клипа отреагирует и на основную временную шкалу с помощью функции clickCard будет добавлена ссылка к клипу.
Функция clickCard может выполнить одну из 3-х функций. Если значение переменной firstclip равно 0, ей присваивается клип, по которому щелкнули, карта переворачивается, то есть программа переходит к кадру, содержащему соответствующую картинку.
Если в переменной firstclip хранится ссылка на некий клип, значит, одна карта уже перевернута. В этом случае программа пepeвopaчивает и вторую карту, присваивает переменной secondclip значение клипа и сравнивает два клипа. Если они совпадают, оба клипа удаляются.
Третье условие, которое, на самом деле, проверяется до двух первых, возникает тогда, когда игрок щелкает по одной и той же карте дважды. В таком случае значение переменной clip будет равно firstclip. Карта просто снова переворачивается и значение firstclip обнуляется.
Прежде чем проверить эти три условия, функция clickCard определяет, перевернуты ли уже две карты. Если да, значит, игрок уже выбрал две карты, но они не совпали. Прежде чем перевернуть следующую карту, эти две карты поворачиваются рубашками вверх




Начало  Назад  Вперед