Читаем Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript полностью

function doneGuess() {

numRightSpot = 0;

numRightColor = 0;

(1) → // Пять кнопок становятся неактивными.

for (i=0;i<5;i++) {

_root["rock"+row+"-"+i].active = false;

}

(2) → // Определяем, сколько имеется кнопок одного цвета.

temp = [0,0,0,0,0];

for (i=0;i<5;i++) {

temp[solution[i]]++;

}

(3) → // Выясняем, сколько цветов правильно угадано.

for (i=0;i<5;i++) {

color = _root["rock"+row+"-"+i]._currentFrame – 2;

if (color == solution[i]) {

numRightSpot++;

temp[color]–;

}

}

(4) → // Проверяем, сколько цветов угадано,

// но находится не на своих местах.

for (i=0;i<5;i++) {

color = _root["rock"+row+"-"+i]._currentFrame – 2;

if (color != solution[i]) {

if (temp[color] > 0) {

numRightColor++;

temp[color]–;

}

}

}

(5) → // Создаем белые камешки.

level = row*10+5;

x = rightColLoc;

for(i=0;i

attachMovie("rock","white rock"+level,level);

clip = _root["white rock"+level];

clip.gotoAndStop("white");

clip._x = x;

clip._y = topRowLoc + row*vertSpace;

level++

x+=horizSpace;

}

// Создаем черные камешки.

for(i=0;i

attachMovie("rock","black rock"+level,level);

clip = _root["black rock"+level];

clip.gotoAndStop("black");

clip._x = x;

clip._y = topRowLoc + row*vertSpace;

level++;

x+=horizSpace;

}

(6) → // Удаляем кнопку Done.

done.removeMovieClip();

(7) → // Выясняем, выиграл ли игрок.

if (numRightSpot == 5) {

gotoAndPlay("win");

} else {

row++;

// Проверяем, проиграл ли игрок.

if (row >= 10) {

showSolution();

gotoAndPlay("lose");

} else {

createRow();

}

}

}

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

function showSolution() {

// Размещаем правильный вариант внизу экрана.

for(i=0;i<5;i++) {

attachMovie("rock","solution"+i,1001+i);

clip = _root[“solution”+i];

clip._x = solutionx + i*horizSpace;

clip._y = solutiony;

clip.foroAndStop(solution[i]+2);

}

}

На рис. 14.6 показан фрагмент ролика, когда игра уже проиграна. Функция showSolution поместила правильную последовательность (решение) внизу экрана.

Рисунок 14.6. Игра проиграна, код поместил правильную последовательность решения внизу экрана

Единственный оставшийся фрагмент кода – небольшой сценарий, прикрепленный к кнопке в каждом клипе «rock». Его задача состоит в том, чтобы переключать цвета один за другим и возвращаться к первому кадру (пустому месту), если пользователь щелкнул определенное число раз. Этот код также проверяет свойство active, чтобы убедиться, что ряд – текущий.

on (press) {

if (active) {

f = _currentFrame+1;

if (f > 6) f = 1;

gotoAndStop(f);

}

}

К сведению

Не забудьте присвоить последним двум кадрам клипа «rock» метки «white» и «black». Также обязательно поместите кнопку Done внутрь клипа «done», которому потом необходимо присвоить имя «done» в панели Linkage Properties. К сожалению, это необходимо, так как ActionScript не может динамически создавать кнопки сами по себе. Считайте, что клип «done» – это просто «обертка» для кнопки Done.

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

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

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

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных