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

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

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

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

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

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

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

вания ground. Он может быть составлен из многочисленных экземпляров само!
себя для получения длинной протяженной поверхности.
ground corner
Этот клип помогает кромке поверхности казаться сглаженной в том месте, г.
в поверхности находится дыра. Это не обязательно; просто так приятнее для
гл за, чем крутой обрыв. Он имеет идентификатор связывания corner.
end flag
Это флаг, который игрок должен захватить в конце уровня. Он имеет идентиф
катор связывания flag. Первый кадр показывает флаг на поднятой мачте. Пос
того как игрок зайдет в зону флага, этот клип воспроизводит анимацию. В
кад|
20 выполняется функция.
where.levelComplete();
Она служит как простая временная задержка в конце уровня и отображает
cooGJ щение level complete. Ссылка where установлена в основной области
код"ц как вы увидите в следующем разделе.
лава 15. Ледяной мир: игра для приставки 399
addy
'то клип врага. Он содержит два клипа. Один содержит анимацию идущего
вра-I а и его смерть и имеет имя экземпляра animation. В другом клипе
находится прямоугольник, который становится невидимым с началом игры и
используется !ля обнаружения столкновения между героем и самим врагом. Он
имеет имя кземпляра hitArea.
Код игры
Эта игра содержит много кода ActionScript. Однако не бойтесь этого,
потому что совсем немного методик и техник, которых вел не видели ранее,
и большая часть кода проста. В этой игре может происходить много событий,
для проверки наступления которых нам потребуется код. Например, когда мы
обнаруживаем столкновение героя с платформой, нам нужно сделать
следующее:
1. Проверить левую сторону. При столкновении переместить героя.
2. Проверить правую сторону. При столкновении переместить героя.
. Проверить верх. Если герой сверху, то нам также нужно немного
переместить героя, если платформа двигается?
4. Проверить низ. Если герой наталкивается снизу, есть там собираемые
объекты? Если да, то сколько? Герой присел под платформой? Если да, то
вывести его.
Это несложные вещи - просто нужно охватить много ситуаций. Это лишь
некоторые из вопросов обнаружения столкновения с платформой, задаваемых с
помощью кода. Выше я даже не включил свойства проницаемости, которые нам
нужно проверить (для дерева)!
Эта игра использует очень объектно-ориентированный (ОО) подход. Я
употребил мои начальные знания ОО-программирования для создания этой
игры, и я удовлетворен результатами. Код прост для понимания и может быть
расширен без необходимости его переписывания.
400
Часть 2. Исследование 0(
Объектно-ориентированное программирование
Последние несколько лет сильно подтолкнули Flash-кодеров начать кодировJ
спосо ом. ОО-кодирование, известное также как объектн( ри знтированное
программирование (ООП), fie содержит никакого синтаксн^ц оторым вы еще
незнакомы. Это скорее состояние сознания и привержен ость некоторым
конструкциям. Мы использовали многие техники ОО на npi кении этой книги -
например, алгоритм А*, объект isometricAS и объН
• сс ю eiverAS (который вы видели в гл. 13, "Препарирование чата"; и
в I по многопользовательским играм, "Крестики-нолики: ваша первая много
зовашльская игра" и "Девять шаров"). Когда вы видите что-то, закоди|н
анное в манере ОО, - это обычно довольно просто для понимания. Например
едяном мире у нас есть объект игры, который содержит объект героя (пок,.
ще есть смысл?). Объект героя содержит определенные методы, вроде jump(),
wa е () и crouch(). Они настолько сложны, насколько это нужно для игры?
мировани°ВаНИС является просто способом структурирования задач програм-
Разрешите сделать для вас сравнение. Если бы я не использовал ОО, то я
moi
I просто создать функцию с именем jump() в шкале времени. Но что если
вр.н гакже можег прыгать? 1огда я должен был бы переименовать эту
функцию, скажем, в heroJump() и создать вторую функцию с именем
enemyJurap(). ОС), кодирование делает это гораздо более простым делом и
более интуитивно дает каждому объекту способность для выполнения функции.
Таким образом, эта выглядело бы как enemy.jumpO и hero.jump().
ОО имеет тенденцию быть легче расширяемым (т. е., вы можете просто до*
авить метод, такой, как hero.expIode(), без пересечения с другим кодом),
прост
I Для 0 ° и(е,1ИЯ и понимания. Но он имеет одну большую проблему -
произво-дительность. Дня игр вроде Ледяного мира производительность не
является ольшои проблемой. Но для игр, которые требуют выполнения
большого количества вычислений, которые повторяются очень часто (типа
игры Девять шаров), может быть слишком многословен. Вам, возможно,
потребуется оптимизировать код в не ОО-блоки для выигрыша в
производительности. Мое знание растет с каждым днем, но я по-прежнему
должен многому учиться уществует много концепций, о которых я читал или
слышал в лекциях и которые, я уверен, я буду использовать. Если вы
интересуетесь ООП во Flash, вы должны принимать участие в дискуссиях на
форумах (или просто читать их) на сайтах ресурсов по Flash, таких, как
Предыдущая << 1 .. 127 128 129 130 131 132 < 133 > 134 135 136 137 138 139 .. 210 >> Следующая