Глава 2. Создаем плитки
Как было сказано в Главе 1 «Формат карты», мы будем хранить данные карты в двумерном массиве. Зададим плитки, которые будут показываться на экране в требуемой позиции и покажем их соответствующим кадром клипа. Карта игры будет выглядеть так: 
(О взгляде на игровое пространство. В данном случае, проекция нормальная - взгляд сверху. Ось Х - по горизонтали, увеличение координаты - ВПРАВО. Ось У - по вертикали, увеличение координаты - ВНИЗ. Такая проекция позволяет строить движок игры для перемещения Героя по пространству игры (координаты Х и У) в пределах карты. Прыжки Героя, лестницы, и все остальное, что связано с высотой, НЕ ИМЕЕТ смыла, т.к. все одно не видать. Например, прыжок вверх - это как? Нужно показывать в изометри. Если есть изометрия, тогда появляется высота, и возможно построение более веселого функционала движка и вида игры.) Первыми объявим некоторые объекты и переменные: // Массив описания карты myMap = [ [1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 0, 0, 1], [1, 0, 1, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 1, 0, 1], [1, 0, 0, 0, 0, 0, 0, 1], [1, 1, 1, 1, 1, 1, 1, 1] ];
// Размер плитки 30 х 30 пикселей game={tileW:30, tileH:30};
// Объект плитка - тип 0 game.Tile0= function () {}; // Задаем свойства плитки типа 0 game.Tile0.prototype.walkable=true; // проходная game.Tile0.prototype.frame=1; // кадр 1
// Объект плитка - тип 1 game.Tile1= function () {}; // Задаем свойства плитки типа 1 game.Tile1.prototype.walkable=false; // не проходная (стенка) game.Tile1.prototype.frame=2; // кадр 2
Итак, описание нашей карты хранится в переменной myMap . Следующая строка после описания массива карты содержит объявление объекта "game" . Мы будем использовать этот объект, чтобы хранить там все, что нам нужно, все будет сохраняться на уровне _root или другом, но нам всегда будет известно его местонахождение. Примечание. Дадим объекту game два свойства tileW=30 и tileH=30. Это ширина и высота плитки. Не обязательно, чтобы плитка была квадратом, можно использовать и прямоугольник. (Главное, чтобы они были одинакового размера, как двое из ларца - одинаковы с лица.) Когда мы захотим узнать ширину или высоту плитки, мы можем просто написать: game.tileW; game.tileH;
А, когда мы захотим изменить размер плиток, мы должны указать только размер в одной из строк. Следующая строка изменяет свойства прототипа нашего объекта game : game.Tile0= function () {}; game.Tile0.prototype.walkable=true; game.Tile0.prototype.frame=1;
Здесь, первая строка game.Tile0= function () {} объявляет новый прототип объекта. Когда мы указываем 0 в массиве карты, мы тем самым говорим, что будем использовать плитку тип 0 объект Tile0, как шаблон для создания экземпляров объекта плитки в этой позиции. Следующая строка, говорит, что у протипа объекта Tile0 будут некоторые свойства. У каждого объекта будет свойство walkable и frame. Их значения описаны ранее. Есть вопросы - пишите мне на semikin@dionaholding.ru Читаем дальше Главу 2 - Создаем и показываем карту.
|