Создание кода
Весь сценарий прикреплен к клипу «actions», расположенному за пределами рабочего поля. Он начинается с обработчика событий onClipEvent (mouseDown), который реагирует на щелчок мыши по рабочему полю.
Этот код просто просматривает элементы картинки и определяет, находится ли один из них под курсором, а также является ли элемент полностью непрозрачным, то есть размещен ли на своем месте.
Если элемент найден, программе Flash сообщается, что теперь он подвижный и может перемещаться с помощью команды startDrag. Затем программа завершается.
...
Примечание
Команда startDrag – основное действие, позволяющее пользователю перетаскивать клип. Оно не такое универсальное, как методы перетаскивания, рассмотренные ранее, но в простых случаях работает хорошо. Команда stopDrag останавливает перетаскивание.
onClipEvent(mouseDown) {
// Определяем положение курсора.
mx = _root._xmouse;
my = _root._ymouse;
// Просматриваем все элементы картинки.
for (x=0;x<6;x++) {
for(y=0;y<4;y++) {
piece = _root[x+"-"+y];
// Выясняем, находится ли элемент под курсором
// и не находится ли он уже на своем месте?
if (piece.hitTest(mx,my) and (piece._alpha < 100)) {
// Пользователь щелкнул по элементу.
piece.startDrag()
// Выходим из циклов.
x = 6;
y = 4;
break;
}
}
}
}
Когда пользователь отпускает кнопку мыши, элемент фиксируется. Код проверяет расстояние от центра элемента до центра контура: если оно не превышает 10 пикселов, элемент перемещается точно в свое положение и становится полностью непрозрачным, так что пользователь видит: элемент находится на своем месте.
onClipEvent(mouseUp) {
// Прекращаем перемещение элемента.
stopDrag();
// Измеряем расстояние от центра элемента до центра контура.
dx = _root.outline._x – piece._x;
dy = _root.outline._x – piece._y;
dist = Math.sqrt(dx*dy+dy*dy);
// Если расстояние меньше 10 пикселов,
// элемент помещается на свое место.
if (dist < 10) {
piece._x = _root.outline._x;
piece._y = _root.outline._y;
// Делаем элемент полностью непрозрачным.
piece._alpha = 100;
}
}
Другие возможности
Эта игра – самая простая из программ составных картинок-загадок. Вы без труда можете ее усовершенствовать. Например, можно запоминать исходное положение элемента при перетаскивании, а затем возвращать его на место, если игрок неправильно поместил его.
Еще один способ сделать игру интереснее – написать функцию, которая будет проверять, все ли элементы уже находятся на своем месте и если да, будет осуществлять переход к кадру с поздравлением с победой. Можно усложнить игру, создав более 24 кусочков, тем самым получив больше мелких элементов.
Если хотите, позвольте игроку поворачивать каждый элемент на 90°, 180° или 270°. Для этого пользователь мог бы нажимать клавишу Пробел. Элемент будет фиксироваться в своем положении только в том случае, если он правильно повернут.
Конечно, есть более сложные варианты, например, картинки-загадки, у которых нет очерченного контура. Игрок может соединить два или более элементов в любом месте экрана, а затем прикрепить их к целой картине. Однако для такой игры потребуется написать большой сценарий. Вместо этого давайте перейдем к другому виду составления картинок.
Исходный файл: Slidingpuzzle.fla
В отличие от пазла игра "Пятнашки" куда интереснее в качестве компьютерной игры, чем в виде обычной игры. "Пятнашки" обычно состоят из 15 квадратных элементов, которые перемещаются вдоль сетки, рассчитанной на 16 элементов. Пустое место – дополнительная область, куда может быть перемещен элемент мозаики.
На рис. 13.3 показана мозаика с изображением лисы. Попробуйте сыграть в эту игру, открыв файл Slidingpuzzle.fla, размещенный на Web-сайте. Вы можете щелкнуть по любому из четырех элементов, смежных с пустым квадратиком, чтобы переместить его. Цель игры – правильно собрать картинку, оставив пустым место в нижнем правом углу.
Рисунок 13.3. В «Пятнашках» используется 15 элементов и один пустой квадрат
Задача проекта
Цель проекта – создать простую, легкую игру по принципу «Пятнашек». Игрок будет щелкать по элементу: если рядом есть пустой квадрат, элемент будет перемещен.
Очень важно в начале игры случайным образом расположить элементы. Для этого Flash-ролик сначала нарисует все элементы мозаики на своих местах, а затем будет выполнено 100 произвольных перемещений. Таким образом, элементы окажутся перемешаны, и собрать такую мозаику будет сложно, но возможно.
Подход
Большая часть рассматриваемой программы представляет собой по сути подготовку к собственно игре, обеспечивая перемешивание элементов мозаики. Сначала случайным образом выбирается элемент. Потом выполняется проверка, является ли один из четырех смежных элементов пустым. Если да, то выбранный элемент перемещается туда. В противном случае выбирается другой элемент до тех пор, пока не будет найден элемент, смежный с пустым квадратом. Этот процесс повторяется 100 раз.
Читать дальше
Конец ознакомительного отрывка
Купить книгу