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

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

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

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

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

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

Макар Дж. Секреты разработки игр в Macromedia Flash MX — М.: КУДИЦ-ОБРАЗ , 2004. — 608 c.
ISBN 0-201-77021-0
Скачать (прямая ссылка): sekretirazrabotkiigr2004.djvu
Предыдущая << 1 .. 141 142 143 144 145 146 < 147 > 148 149 150 151 152 153 .. 210 >> Следующая

ющее окно, которое сообщает, что игра началась. Игрок 1 информируется,
чт* сейчас его ход, а Игрок 2 информируется, что ходит его соперник. Для
того чтобы сделать ход, Игрок 1 должен нажать на любую их девяти клеток.
Когда он сделаем это, в этом месте появляется символ X и Игрок 2
информируется о том, что насч| пила его очередь ходить. Когда Игрок 2
делает ход, он может нажать на любую и
лава 17. Крестики-нолики: ваша первая многопользовательская игра
437
тавшихся восьми клеток и добавить О. Первый игрок, создавший из своих
сим-иолов горизонтальную, вертикальную или диагональную линию, выигрывает
игру. Когда игра закончена, всплывающее окно отображает небольшое
сообщение, п ворящее игрокам, выиграли ли они или проиграли игру. Если
доска заполнена и ни один не выиграл, то игра заканчивается сама. При
таком варианте всплывающее окно сообщает обоим игрокам, что в игре нет
победителя. Каждый игрок может перезапустить игру, нажав на кнопку
Restart в нижней, правой части экрана. Когда игра перезапущена, доска
возвращается в исходное состояние, очищаясь от символов, а Игрок 1 снова
получает право первого хода.
(> L* ООО ¦ _____ (
о а и 0 о а в J0|
На экране есть окно чата, так что игроки могут постоянно общаться. Одна
из самых трудных вещей - найти место для окна чата в
многопользовательской
438
Часть 2. Исследование основ
игре. В игре крестики-нолики это не проблема, но во многих играх это
вызывает трудности в компоновке.
Файл Flash, используемый для этой игры, называется tic_tac_toe.lle и
расположен в папке Chapter 1 7 на CD. Этот файл был создан на оснопн
файла chat_full_featured.fla из гл. 13, "Препарирования чата", и
созданием игры крестики-нолики в кадре с меткой Game. Все, что касается
метА Game, рассматривалось в гл. 13, поэтому мы не будем касаться этого
сим "ва, а перейдем прямо к коду ActionScript и клипам, которые находят с
в кадре с меткой Game. В следующем разделе мы поговорим о многополцЛ
зовательских функциях, необходимых для того, чтобы игра работала. 3.1
тем, в заключительном разделе, мы перейдем к коду ActionScript, который
управляет правилами игры и интерактивностью.
О Для тестирования этой игры вам нужно запустить ElectroServer на
номер" порта 1024. Этот файл игры настроен для соединения с localhost,
который# имеет соответствующий 1Р-адрес 127.0.0.1, на номере порта 1024.
Оба s'rti J свойства могут быть легко изменены, если необходимо, в кадре
Chal System.
Пошаговые игры в сравнении с играми реального времени
Крестики-нолики и все многопользовательские игры в этой книге являются
пошаговыми. В пошаговой игре лишь один игрок может делать ход в
определенный момент. В шахматах, например, Игрок 1 делает ход. Затем
делает ход Игрок 2. Игрок 1 и Игрок 2 не могут делать ход одновременно. В
игре реального времени оба игрока могут делать ходы одновременно.I
Хорошим примером такой игры является Мортал комбат (Mortal Kombat) -игра
из класса единоборств. Оба игрока могут ходить, прыгать, бить ногами и
руками и потрошить противника одновременно. Этот вид игры не является
невыполнимым для Flash, но по некоторым причинам он очень труден в
реализации. Одна из причин - это проблема с ожиданием сети. Скажем, в
момент timel Игрок 1 бьет кулаком Игрока 2. Точно в это время на его
собственном компьютере Игрок 2 отступает на шаг. Вследствие задержки в
сети информация об Игроке 2 еще не достигла Игрока 1. Аналогично
информация о нанесении удара Игроку 2 не достигла Игрока 2, а он сейчас
отошел. Это создает проблему. Есть обходные пути для решения подобной
проблемы, но они находятся за пределами материала этой книги.
Глава 17. Крестики-нолики: ваша первая многопользовательская игра
439
Многопользовательский аспект
В этом разделе мы собираемся рассмотреть код ActionScript, необходимый
для обработки многопользовательского аспекта этой игры. Также мы
исследуем одну важную проблему, по которой мы решили использовать
переменные в памяти. Откройте файл tic tac toe.fla из папки Chapterl7 на
CD. Как вы, возможно, помните из гл. 13, после того, как два человека
согласились играть в игру, они попадают в кадр Game. Давайте сейчас
взглянем на код ActionScript в этом кадре в слое Actions. Ниже
представлены несколько последних строк этого кода ActionScript.
1 ES.moveReceived = this.moveReceived;
2 ES.onRoomVarChange = roomVarChanged;
3 ES.chatReceiver = this.messageArrived;
4 ES.j oinGame();
5 iAmln();
В первых трех строках мы определяем обработчики событий. В строке 1 мы
определяем обработчик события moveReceived, с тем чтобы функция
выполнялась при каждом ходе. Мы будем рассматривать эту функцию позднее.
В следующей строке мы определяем обработчик события onRoomVarChange.
(Помните, что с помощью ElectroServer мы можем хранить переменные в
памяти на сервере.) Когда переменная создана, модифицирована или удалена,
возникает данное событие. Мы определяем обработчик события
onRoomVarChange для того, чтобы знать, когда нам проверять обновленную
Предыдущая << 1 .. 141 142 143 144 145 146 < 147 > 148 149 150 151 152 153 .. 210 >> Следующая