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


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


Большая часть кода находится в основной временной шкале. Он начинается с выравнивания элементов на расстоянии точно в 54 пиксела, затем 100 раз выполняется цикл, перемещающий случайно выбранный элемент на пустую позицию.

function initGame() {

// Устанавливаем горизонтальное и вертикальное расстояние

// между элементами.

tileDist = 54;

// Помещаем все элементы на свои места,

for (x=l;x

for (y=0;y

tile = х+у*4;

_root["tile"+tile];

_x = x*tileDist;

_root["tile"+tile];

_y = y*tileDist+tileDist;
}}

// Совершаем 100 произвольных перемещений,

for(tilenum=0;tilenum

do {

// Выбираем элемент случайным образом.

tile = "tile"+(random(15)+1);

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

emptySpace = findEmpty(tile);

// Цикл продолжается до тех пор, пока не будет найден

// элемент, рядом с которым расположен свободный квадрат.

} while (emptySpace == "none");

// Перемещаем элемент на свободное место.

moveTile(tile,findEmpty(tile));

}}

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

// Проверяем, есть ли свободное место около данного элемента,

function findEmpty (tile) {

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

tilex = _root[tile]._x;

tiley = _root[tile]._y;

// Проверяем, есть ли элемент мозаики слева,

if (tilex > tileDist) {

if (!tileThere(tilex-tileDist, tiley)) {

return("left");

}}

// Проверяем, есть ли элемент мозаики справа,

if (tilex > tileDistM) {

if (!tileThere(tilex+tileDist, tiley)) {

return("right");

}} // Проверяем, есть ли элемент мозаики сверху. if (tiley > tileDist) { if (!tileThere(tilex, tiley-tileDist)) { return)"above");

}}

// Проверяем, есть ли элемент мозаики снизу,

if (tiley > tileDistM) {

if (!tileThere(tilex, tiley+tileDist)) {




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



Книжный магазин