на главную почта поиск
 
поиск
Диона Холдинг
   
   
FLASH-версия 
 Версия для печати 
  Новости
 

   
Новости  
   

Глава 3. Герой

Какая игра может быть без Героя (какая ж песня без баяна?). Герой будет спасать мир и принцесс, попутно круша плохих ребят. Добавим Героя. Он еще не хочет спасти мир, да, и ничего не умеет делать, но уже здесь:

Герой – красный квадрат (не Малевича). Что, плохо выглядит? Вы можете намазюкать собственного – красивого и неповторимого Героя. Его клип должен быть в библиотеке под именем "char" или экспортирован (как дедушка Ленин) под тем же именем.

Заметим, клип Героя имеет нулевую точку в центре, а клипы плиток имеет нулевую точку в левом верхнем углу. (Нулевая точка клипа обозначена маленьким крестиком).

Хотите кода? Их есть у меня, добавьте строку после объявления:

char={xtile:2, ytile:1};

Этот код объявляет новый объект - "char". Обект будет хранить всю информацию о себе любимом, как движется, как себя чувствует, что ест и пьет.

Тем временем, дадим объекту пока только два свойства - xtile и ytile . Они (свойства) определяют местоположение (единица измерения – плитки, а может попугаи?) нашего Героя на карте. Когда он начнет перемещаться, будем обновлять эти свойства и всегда будем знать на какой плитке он (Герой) стоит.

Например, при xtile=2 и ytile=1 , будем считать что Герой стоит на плитке "t_1_2". Когда мы посмотрим на клип примера, мы увидим Героя на плитке 3 слева и 2 сверху от левого верхнего угла нашей карты. Все плитки начинают свою нумерацию с 0.

Позднее наделим Героя большими свойствами и доблестями.

Чтобы разместить клип Героя на экране, добавим следующие строки в функцию buildMap после окончания циклов:

// Присоединяем клип char из библиотеки под именем char, кладем его на уровень 10000
game.clip.attachMovie("char", "char", 10000);
// Запомним клип в общей структуре клипов
char.clip = game.clip.char;
// Считаем Х и У координаты клипа Героя
char.x = (char.xtile * game.tileW)+game.tileW/2;
char.y = (char.ytile * game.tileH)+game.tileH/2;
// Ширина-высота Героя равна ½ Ширине-высоте плитки
char.width = char.clip._width/2;
char.height = char.clip._height/2;
// Запомним координаты в клипе
char.clip._x = char.x;
char.clip._y = char.y;

Первая строка присоединяем новый клип из библиотеки в контейнер клипа игры game.clip (вы не забыли, что мы сохранили клип игры game.clip на экране _root.tiles в предыдущей главе) и даем ему имя - "char".

Затем мы сохраняем в объекте информацию о клипе (т.е. как Герой сам себя показывает), тогда при необходимости обращения к клипу (изображению) Героя, можем просто написать char.clip и получим путь доступа _root.tiles.char. Это поможет нам и в дальнейшем, если, вдруг, нам понадобится переместить клип Героя куда-нибудь еще.

В следующих строках, сохраняем координаты Х и У нулевой точки клипа. Вы хотели больше свойств, пожалуйста. Вспомним, свойства xtile/ytile хранят местоположение в плитках, не в пикселах. Свойства x/y хранят координаты клипа нашего Героя в пикселах. Хорошая идея – позициионировать клип прежде, чем его показывать. Возможно потребуется изменить позицию, потому как Герой может подойти к стене или потерять силу, да и переменные изменить легче, чем менять скрытые свойства клипа _x/_y.

Мы будем вычислять текущую позицию Героя по номеру плиток, на которых он стоит и добавим половину размера плитки, чтобы разместить клип Героя в центре плитки. Итак координата по Х - char.xtile * game.tileW .

В следующих строках определяем ширину и высоту (размеры) Героя, как объекта, на основе размеров клипа нашего Героя. Это будет часто использоваться, при определении границ нашего Героя. Можно создать свои собственные границы, если не хотите связываться с размерами клипа. Некоторые герои могут иметь шапку из волос, которая будет касаться стен, тогда просто задайте собственные размеры Героя.

Две последние строки обеспечивают сохранение координат объекта в координатах клипа Героя char.clip.

Можно загрузить представленные коды со всеми клипами прямо отсюда.

Есть вопросы - пишите мне на semikin@dionaholding.ru

Читаем дальше - Глава 4. Управление перемещением

Возвращаемся на Начало учебника

 

Всего: 5

Электронные формы от Adobe

14 ноября с.г. компания представила новую версию всем известного средства Adobe Acrobat. 8-ая по счету версия принесла новые возможности по переходу от бумажных документов к электронным.
читать
 

АрмПарк - Универсальная учетная система

Серия материалов о программе - АрмПарк - Универсальная учетная система. Решение для тех кому необходимо быстро создать и внедрить электронную картотеку по учету - документов, матералов, оборудования, ресурсов или зеленых человечков.
читать
 

Программирование игр на основе плиток

Представляется перевод замечательного учебника по созданию движка игры на основе плиток (Tile Based Games). Я благодарен автору Tonypa за разрешение публикации перевода. Если у Вас возникают вопросы, пишите и я постараюсь Вам помочь.
читать
 

Универсальная информационная система-конструктор Учет документов (Доклад на конференции).

Доклад на Третьей практической конференции по Электронному Документообороту - "Программа "Учет документов" ", 9 декабря, Москва, Мэрия Москвы.
читать
 

Интеграция систем с использованием новых технологий

Один из ключевых моментов совершенствования электронного бизнеса - это повышение гибкости процессов за счет ускорения реализации решений в области интеграции.
читать
Всего: 5

Rambler's Top100

   
   

новости

продукты

решения

услуги

о компании

   
   
125315, Москва, Часовая ул., д.30
Телефон: (095)797-32-82; Факс: (095)797-32-81
© 2005 ООО "Диона Холдинг"
Администратор: admin@dionaholding.ru