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

initGame();

stop();

function initGame() {

// Определяем постоянное расположение клипов.

holeSpace = 30;

puzzleLeft = 160;

puzzleTop = 80;

// Просматриваем все отверстия и создаем в них колышки.

i = 0;

for(y=0;y<9;y++) {

for (x=0;x<9;x++) {

// Проверяем, должен ли быть создан колышек.

// Если да, создаем его.

if (((y < 3) or (y > 5)) and ((x < 3) or (x > 5))) continue

// Добавляем и размещаем новое отверстие.

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

_root["hole"+i]._x = x*holeSpace + puzzleLeft;

_root["hole"+i]._y = y*holeSpace + puzzleTop;

// Не добавляем колышек в центральное отверстие.

if ((x != 4) or (y != 4)) {

// Добавляем и размещаем

// новое отверстие.

attachMovie("peg","peg"+i,100+i);

_root["peg"+i]._x = x*holaSpace + puzzleLeft;

_root["peg"+i]._y = y*holaSpace + puzzleTop;

}

i++;

}

}

// Запоминаем количество колышков.

maxHole = i;

}

Когда игрок щелкает по колышку, на самом деле он щелкает по кнопке, расположенной внутри клипа. Оба действия, «press» и «release», передаются функциям в основной временной шкале. Функция dragPeg вызывается действием «press». Эта функция сохраняет положение колышка в переменных pegx и pegy, а затем разрешает перемещать колышек. Также она использует функцию swapDepths, чтобы колышек отображался поверх всех остальных.

function dragPeg(peg) {

// Запоминаем исходное положение колышка.

pegx = peg._x;

pegy = peg._y;

// Размещаем колышек поверх остальных.

peg.swapDepths(2000);

// Разрешаем программе Flash перемещать клип.

startDrag(peg, true);

}

Функция dropDrag вызывается тогда, когда игрок отпускает кнопку мыши при перетаскивании. Сначала клип прекращает перемещение (8) . Затем с помощью функции dropDrag выясняется, находится ли какое-нибудь отверстие под курсором (9) .

Если курсор мыши расположен над дыркой, следующий шаг – определить, пустое ли отверстие или нет (10) . Затем код проверяет отверстия во всех четырех направлениях, чтобы выяснить, из какой дырки мог быть перемещен колышек. Для определения относительного положения отверстия используются переменные dx и dy (11) . Например, если игрок перемещает колышек вправо. dx присваивается 1, а dy – 0. Если вверх, то dy будет равняться -1, а dx – 0. Если отверстие, куда игрок перемещает колышек, не расположено через одну дырку вправо, влево, вверх или вниз, значения dx и dy становятся равными 0 (12) .

Даже если игрок перемещает колышек через одно отверстие, помещает его в пустое место, ход засчитывается только в том случае, если он "перепрыгивает" через другой колышек. Следующий фрагмент кода проверяет, есть ли такой "серединный" колышек (13) . Если да, код его удаляет и указывает, что перемещаемый колышек теперь находится в новом месте.

Если одно из этих условий не выполняется, значит, ход неверен. Значение переменной placed остается равным false, оно проверяется в конце функции (14) . И колышек возвращается на свое исходное место.

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

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

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

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

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

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

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

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

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