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

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

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

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

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

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

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

и является тем, что мы реально рассматриваем как правую стенку. В строке
5 мы устанавливаем значение rightWallOn в false. Когда оно равна false,
мы не обнаруживаем столкновения с этой стеной. Это для того, чтобы не
дать пинболу пройти через нее при запуске. После того как пинбол прошел
через нее, мы устанавливаем значение rightWallOn в true. Это делается в
функции checkForWalls().
Далее мы устанавливаем значение переменной с именем shotYet в значение
false. Эта переменная устанавливается в true, как только шар отскакивает
от стартовой доски Когда её значение равно true, поршень не будет
реагировать на нажатие клавиши пробела. В строках 7-12 мы устанавливаем
начальную векторную скорость шара в 0 и помещаем шар поверх поршня. Затем
мы устанавливаем уровень мощности поршня. Его минимальная мощность равна
0, а максимальная мощность равна 30. Это соответствует начальной скорости
шара в момент запуска.
Эта функция принимает два параметра, which и dir. Параметр which
сообщает, какую из ракеток повернуть, левую или правую. Параметр dir
определяет направление поворота - вверх или вниз.
Эта функция работает просто. Когда ракетка движется вверх или вниз,
функция должна перерисовать линию ракетки в памяти таким образом, что шар
будет способен отреагировать на новый поворот ракетки. Также, когда она
повернута вверх или вниз, эта функция приказывает графическому элементу,
который представляет ракетку в сцене (left_paddle или right_paddle),
перейти на правильный для отображения ракетки под соответствующим углом.
Далее, когда она поворачивается вверх, эта функция также запускает
функцию checkCoilis оп(), которая проверяет, столкнулся ли шар в данный
момент с клинообразным клипом. Если да, то рассчитывается реакция.
432
Часть 2. Исследование основ
checkCoUision()
Когда эта функция вызвана, она просто проверяет на столкновение шар с
клинообразным клипом, используя hitTest(). Если столкновение произошло,
то выпол-тяются следующие шаги:
I. Угол воображаемой линии, образованный между неподвижной точкой
вращения ракетки и текущим положением шара, находится с помощью
Math.atan2(). Это угол, который должен быть у ракетки при столкновении.
I. Угол, под которым шар двигался, используется вместе с углом,
найденным в шаге 1 для нахождения угла отражения шара.
$. Этот угол отражения проходит через простой фильтр. В процессе
тестирования я обнаружил, что иногда шар отскакивает к другой ракетке в
горизонтальном направлении или под большим углом к стенке. Так что здесь
введены выражения if для проверки, что угол находится в определенном
диапазоне. Если угол выходит за пределы принятого диапазона, его значение
изменяется.
L Скорость, с которой шар отскакивает, зависит от расстояния шара от
неподвижной точки вращения. Если шар сталкивается далеко от конца
ракетки, то он должен отлетать на максимальной скорости. Если шар
ударяется очень близко от точки вращения, то он должен от летать с
невысокой скоростью.
I упомянул ранее в этом разделе, что эта функция также деактивирует
ракетку, ;огда обнаружено столкновение. Мы деактивируем ракетку таким
образом, что ! том же или следующем кадре линия ракетки не сталкивается с
шаром. Ракетка [ктивирует сама себя через несколько кадров.
возможные усовершенствования игры
хть так много возможных дополнений к этой игре, что трудно даже
определить, чего начать. Здесь лишь несколько вещей, которые могут сильно
улучшить ее.
• Решить краевые эффекты. Это, конечно, проще сказать, чем сделать.
• Разработать независимую от кадров процедуру обнаружения
столкновений вращающейся системы "линия - шар". Это другая вещь, о
которой проще сказать, чем сделать, но она возможна и не так трудна, как
может показат ься.
• Добавить "порядок событий", аспект типичной игры пинбол, который мы
не пытались реализовывать здесь. Дня полной игры вам определенно нужно
было бы добавить эту дет&пь. (См. "Вокруг пинбола" выше в этой главе для
рас-
Глава 16. Пинбол
433
смотрения основных процедур и характеристик полной игры пинбол, включая
порядок событий.)
• Добавьте другие типичные пинбсшьные устройства, какие, как ямы, два
набора ракеток и плетки, которые могут быть сбиты.
• Наклоните игру слегка в 3D-перспективе, чтобы придать ей иллюзию
большей реальности. Большинство лучших компьютерных пинбольных игр
рисуются таким способом.
• Добавьте скат на второй уровень. Шар может подниматься по скату и
затем набирать очки от столкновения с объектами на втором уровне.
• Найдите или сделайте сумасшедшие звуки. Лишь немного звуков входит
в пинбол, так что у вас не должно быть больших проблем с поиском
нескольких великолепных звуков для добавления к этой игре.
• Добавьте на стол больше мигающих огоньков и сверкающей анимации. В
игре пинбол стол в большинстве случаев не бывает статичным. Всегда что-
нибудь мигает.
• Добавьте возможность иметь более чем один шар на доске в одно
время. Это такое дополнение, что не должно вызвать трудностей.
Предыдущая << 1 .. 139 140 141 142 143 144 < 145 > 146 147 148 149 150 151 .. 210 >> Следующая