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

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

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

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

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

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

Макар Дж. Секреты разработки игр в Macromedia Flash MX — М.: КУДИЦ-ОБРАЗ , 2004. — 608 c.
ISBN 0-201-77021-0
Скачать (прямая ссылка): sekretirazrabotkiigr2004.djvu
Предыдущая << 1 .. 129 130 131 132 133 134 < 135 > 136 137 138 139 140 141 .. 210 >> Следующая

го нам нужно сделать это так, чтобы вы не могли застрять. Так, если вы
находитесь под платформой и наклонились, то вы медленно продвигаетесь в
определенном направлении со скоростью pushSpeed.
Далее мы устанавливаем jumpSpeed. Это начальная скорость, с которой вы
двигаетесь на экране вверх, когда прыгаете. Наконец, мы перемещаем клип
героя в очень высокий уровень. На этой новой глубине герой будет всегда
выше любых других объектов.
Смешанные определения свойств в объекте Game
)то оставшиеся свойства объекта game. За исключением строк 6-11, этот код
ActionScript должен быть прост для понимания без дополнительных
объяснений.
404
Часть 2. Исследование осн(
1 game.level =1;
2 game.numLeve1s =5;
3 game.runDecay = .85;
4 game.depth =10000;
5 game.floor =330;
6 game.viewableHeight = 350 ;
7 game.viewableWidth = 680 ;
8 game.walkAbleWidth =4800;
9 game.walkAbleHeight =4000;
10 game.xScrollFactor = ( game . bg.width-game.viewableWidth)/
.game.walkAbleWidth;
11 game.yScrollFactor =game.bg.height/game.walkAbleHeight;
12 game.gravity =2;
13 game.windResistance = .92;
14 game.numLives = 3;
Давайте взглянем на строки 6-11. Цель этих строк кода состоит в
определен" насколько нужно прокрутить фон, когда герой перемещается. Мы
делаем этв сохраняя размеры того, что мы можем видеть и размеры того, что
мы видеть i можем. В строках 6 и 7 мы сохраняем видимые размеры уровня.
Это дает н знать в любой момент, что мы можем видеть 680 пикселей по
ширине и 350 пи селей по вертикали. Следующие две строки определяют, как
далеко (максимал но) мы позволим герою идти как по горизонтали, так и по
вертикали. Эти чи произвольны, вы можете выбрать какие хотите. Идея
однако в том, что есл( персонаж проходит от одного края означенной
области весь путь до друго1 края, то изображение фона должно прокрутиться
полностью один раз... поэто я рекомендую использовать большие числа, как
я тут и сделал. Большое чист заставит фон прокручиваться не слишком
быстро, и появление фона будет пр' исходить довольно реалистично. В
строках 10 и 11 мы определяем параметр прокрутки на основе отношения
размеров фоновой картйнки к доступной облш ти прохождения
levelLoadedQ
Код ActionScript, используемый в этой функции, почти полностью имеет де;
с разбором XML, рассмотрение которого выходит за пределы этой книги. Чтоб
узнать больше о разборе XML, см. приложение D, "Основы XML во Flash Но
здесь мы по крайней мере должны сделать общий обзор того, что делает Э1
функция. Как только файл XML загружен, эта функция выполняется. Она разб|
Глава 15. Ледяной мир: игра для приставки
405
рает XML и создает несколько объектов и некоторые массивы, а затем
добавляет к чипы в уровень. Ниже перечислены объекты и массивы, которые
она создает.
gamc.flag.3TOT объект используется для хранения координат х и у, а также
ссылки на клип флага.
game.platforms.column. Этот массив храпит объект для каждой платформы,
которая содержит информацию об этой платформе, включая координаты л: и у,
тип платформы, ширину и высоту платформы, и ссылку на клип.
game.baddies. Этот массив содержит объект для каждого врага. Он содержит
координаты врага, а также ссылку на клип врага.
game.collectables. Этот массив содержит объект для каждого собираемого
предмета; объект хранит координаты х и у предмета и ссылку на его клип.
game.grounds. Этот массив хранит объекты, представляющие области
поверхности, которые проходимы (т. е. не имеют дыр).
Событие onEnterFrame
Как в большинстве игр, в Ледяном мире у нас есть событие onEnterFrame,
которое предназначено для повторного вызова последовательности функций.
Ниже представлен код обработчика этого события.
1 this.onEnterFrame = function!) {
2 if (game.inPlay) {
3 iff!hero.dead) {
4 1istenForKeys () ;
5 I
6 addFrictionAndGravity() ;
7 createTempPosition() ;
8 if ( ! herо.dead) (
9 haddyDetection();
10 platformDetect() ;
11 collectableDetect() ;
12 detectFlag();
13 checkFloor () ;
14 }
15 renderScreen();
16 }
17 };
406
Часть 2. Исследование оснв
Здесь присутствует оператор if, который содержит все вызовы функций. Он
и" | >J полняет действия внутри блока if, если значение game.inPlay равно
true. Зпач ние свойства inPlay объекта game установлено в true, когда
вызывается функпнЯ startLeveI().
В объекте hero есть свойство с именем dead. Когда герой умирает,знамени!
dead устанавливается в true, иначе оно равно false. Строка 4,
listenForKeys(), нц полняется, если значение hero.dead не равно true.
Функция listenForKeys() пр >* веряет, нажаты ли стрелки направления или
пробел. Если одна из этих клавши нажата, она оказывает действие на
перемещение героя. Строки 6 и 7 уменьшай* скорость горизонтального
движения героя за счет трения (сопротивления воз^Я ха или трения
поверхности) и увеличивают векторную скорость героя по у м величину силы
тяжести.
В строке 8 мы проверяем (снова), умер ли герой. Если нет, то мы выполнявЯ
строки 9-13. В строке 9 мы проверяем столкновение героя с врагами. В
Предыдущая << 1 .. 129 130 131 132 133 134 < 135 > 136 137 138 139 140 141 .. 210 >> Следующая