Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Секреты разработки игр в Macromedia Flash MX - Макар Дж.

Макар Дж. Секреты разработки игр в Macromedia Flash MX — М.: КУДИЦ-ОБРАЗ , 2004. — 608 c.
ISBN 0-201-77021-0
Скачать (прямая ссылка): sekretirazrabotkiigr2004.djvu
Предыдущая << 1 .. 64 65 66 67 68 69 < 70 > 71 72 73 74 75 76 .. 210 >> Следующая

вы сделали клик. Вы увидите, что плитку
"ва 8 Изометрический взгляд на мир
211
жет быть травяной или бетонной и может быть как пустой, так и содержать
растение или блок. Персонаж не может пройти через объект и будет
останавливаться, когда со следующим шагом будет столкновение.
#
!
Iicpb откройте файл isoworld.fla в той же папке. Здесь вы увидите, что не
только
11 г выглядит похожим визуально, но и основная часть кода ActionScript
также liмакова. Прежде чем говорить о коде ActionScript, давайте
посмотрим на клип >го персонажа. Откройте библиотеку и дважды кликните на
персонаже.
212
Часть 2. Исследование о
Обратите внимание, что в этой шкале времени есть 16 кадров с метками,
дожник, который создал этого персонажа, создал его с восемью различными
курсами. Для каждого из восьми углов существует статичная поза и анимац
походки (называемая циклом походки). Статичная поза для первого угла в с
меткой standi и соответствующего цикла походки в walkl. В SWF, когда
нажимаете где-нибудь на плитке, вычисляется угол, образуемый вашим куг
ром мыши и персонажем (в изометрическом мире, не в системе Flash). По э
углу скрипт определяет, какой из восьми углов персонажа изображать. По
этого мы переходим к циклу походки для этого угла. Когда персонаж прекра
ет идти, мы переходим на кадр статики для данного угла.
Теперь дважды кликните па образец плитки в библиотеке. Это клип, кото
несколько раз привязывается к экрану для создания поверхности. В этой ш
времени есть два клипа - с именами innerTile и objects. Клип innerTile
содер> два кадра с метками - Grass(rpaBa) и Сопсге1е(бетон).
Клин objects содержит два кадра с метками - Block и Plant. Метка Plant or
сится к изометрическому виду растения, а метка Block относится к изометр!
скому виду толстой плитки, которая высовывается из пола. С такой простои
стройкой мы можем ле^ко создавать много типов плиток. Например, мы мо
показывать растение, но изменить плитку пола с травы на бетон. Эта пр
архитектура очень гибка.
Теперь вернемся назад к главной шкале времени. Выберите кадр в Actions и
откройте панель Actions. Мы собираемся прошагать через основной
ActionScript в этом кадре, большая часть которого не рассматривалась в пр
дущих разделах.
Сначала давайте взглянем на функцию buildWorld(). Эта функция вызыва для
инициализации самого мира. Она создает объекты, необходимые для х[ ния
информации о мире, и вызывает функции, которые делают такие вещи,
создание плиток и инициализация персонажа.
1 function buildWorld(maxx, maxz) {
2 world = new Object!);
3 world.maxx = maxx;
4 world.maxz = maxz;
5 world.cellWidth = 2 9;
6 world.width = maxx*world.cellWidth;
7 world.length = -maxz*world.cellWidth;
8 world.path = this.floor;
9 var path = world.path;
10 buildFloor(path);
11 buildCharacter(path);
12 }
' <ва 8. Изометрический взгляд на мир
213
) строке 2 мы создаем объект с именем world, который используется для
хране-*1ч информации о мире. Он хранит массив, представляющий плитки
(созданные помощью функции buildFloor()), размеры мира (maxx и maxz) и
объект, кото->-|п представляет персонажа. Этот объект также скоро будет
рассматриваться, [ га мы изучим функцию buildCharacter(). Также в этом
объекте сохранена ши-**па плиток изометрического мира.
Насколько широка ваша плитка?
м могли бы задаться вопросом, как вы можете найти ширину квадратной итки
в изометрическом мире. Легко - вы просто используете инспектор нойств для
нахождения ширины плитки в системе Flash, а затем делите это юло на
квадратный корень из 2 (приблизительно 1.414). Результатом являет-'t
ширина этой плитки в изометрическом мире. С другой стороны, если вы
1 1Ько создаете плитку, то можете использовать следующую уловку:
11арисуйте квадрат во Flash (скажем, 100* 100).
11оверните квадрат на 45°.
Уменьшите высоту этого квадрата на 50 процентов.
• что мы получаем в результате, в точности соответствует тому, как
квадрат плядит в изометрическом мире. И вы знаете, какова его ширина в
мире l-'sh, поскольку вы создали его (100 в данном случае).
'час давайте взглянем на функцию bui!dCharacter() (которая вызывается
|Н1ке 11 кода ActionScript на предыдущей странице):
214 Часть 2. Исследование оснЯ
1 function buildCharacter (path) (
2 world.char = new 0 b j e с t () ;
3 world.char . tempx = 10;
4 world.char . tempy = 0;
5 world.char.tempz = -10;
6 world.char.speed = 4;
7 world.char.feeler = 10;
8 world.char.width = 10;
9 world . char . xmov = 0;
10 worId.char.zmov = 0;
11 world.char.moving = false;
12 world.char.cl ip = path.character;
13 positionCharacter();
14 }
Эта функция инициализирует объект, который представляет персонажа. объект
называется char и находится в объекте world. В строках 3-5 мы у стан!
ливаем временную позицию персонажа для задания ему начального положепи
При прохождении через другие вызываемые функции эта временная позиш
становится текущей позицией персонажа (то есть tempx, tempy и tempz стаи
Предыдущая << 1 .. 64 65 66 67 68 69 < 70 > 71 72 73 74 75 76 .. 210 >> Следующая