Новости
Высшая математика
В научных кругах принято считать, что в рамки высшей математики входят такие дисциплины, как анал...
Нобелевские лауреаты
Нобелевская премия учреждена шведским химиком Альфредом Нобелем в 1895г. Впервые она была вручена ...
Электронная библиотека
На первых порах обсуждения проблематики электронных материалов основное внимание было сосредоточен...
Стерео и видео Стереоизображение
Под стереоизображением понимают получение такого изображения, которое давало бы ощущение протяжен...
Сонник
Сон — это естественный физиологический процесс, который занимает 1/3 жизни человека. Все люди во ...
Синергетика
Синергетика — это междисциплинарный подход исследования, большой вклад в изучение которого, начина...
Авторизация

Пользователь

Пароль

Запомнить



Забыли пароль? Ещё не зарегистрированы? Регистрация

Поиск

Главная arrow Статьи arrow Компьютеры
Компьютеры
Последние штрихи

На данный момент мы ничего не делаем с переменными состояния. В первую очередь осуществляем логику окончания игры. Очередной запуск игры необходимо привязать к нажатию любой клавиши. Для этого после окончания игры (случай, когда мы потерпели неудачу) выполняется небольшая пауза (около одной секунды), и затем нажатие любой клавиши запускает игру еще раз. Необходимо также проверить, что в момент окончания игры не обновляются никакие другие состояния. Таким образом, самые первые строки в методе OnFrameUpdate должны быть следующими:


Добавление препятствий

Поздравляем! Это — первое интерактивное графическое ЗD-прило-жение, которое вы создали. Мы получили модель перемещения автомобиля или автомобильный симулятор. Несмотря на то, что на самом деле перемещается дорога (вниз относительно автомобиля), создается полное ощущение движения автомобиля. Таким образом, мы написали практически половину нашей игры. Теперь необходимо создать препятствия, которые вы потом будете объезжать. Подобно тому, как мы добавляли класс саг, необходимо добавить новый класс «Obstacle» («Препятствия»). Проверьте, что вы включили директиву «using» Управляемого DirectX в этом новом файле кода.


Добавление движущегося автомобиля в используемую сцену

Теперь, когда вы отображаете на экране объект в виде перемещающейся дороги, необходимо добавить объект, с которым взаимодействует игрок — это автомобиль (в листинге программы — «саг»). Вы могли бы просто разместить переменные класса «саг», константы и код в основной класс — «Main class», в котором размещены и дорожные секции, но это выглядело бы не так модульно, как хотелось. Было бы предпочтительнее размещать автомобильный код отдельно, в его собственном классе, который мы попробуем сейчас создать. В главном меню проекта откройте опцию Add New Item и выберите в качестве добавляемого новый класс, названный «саг». Проверьте, что вы включили операторы использования Управляемого DirectX в этом новом файле кода, созданном для вашего приложения.


Использование только необходимого освещения DirectX

Вместо того чтобы использовать подход «все или ничего» в плане выбора типа освещения, вы можете просто проводить «многоуровневую» проверку поддержки режимов освещения. В данном сценарии сначала выясняется, поддерживается ли хотя бы один источник света, и если да, можно включить его. Затем проверяется наличие второго поддерживаемого источника света, и так далее. Это дает возможность иметь резервный вариант (один источник) даже для тех устройств, которые не поддерживают два источника света и более. Данный пример не совсем подходит при использовании одного источника направленного света, поскольку многоуровневая проверка не была выполнена. Хотя даже в этом случае это выглядело бы примерно так:


Работа со скелетными мешами DirectX

В первой половине этой главы вы научились управлять иерархией костей, которые являются основой скелетной анимации. Это все хорошо, но игра с воображаемыми костями не очень занимательна. Людям, играющим в ваши игры, необходимо видеть всю тяжелую работу в виде визуализированных мешей, где и приходит время скелетных мешей.


Обновление иерархии

После того как вы изменили матрицу преобразования костей, вам необходимо обновить всю иерархию, чтобы вы могли использовать ее для последующей визуализации. Даже если вы не изменяли матрицу преобразования костей, вам все равно необходимо обновить иерархию для установления некоторых переменных перед визуализацией.


Изменение положения костей

После того как вы загрузили иерархию костей, вы можете управлять ими. Для изменения положения кости вам необходимо обнаружить соответствующую ей структуру фрейма, создав функцию, которая бы рекурсивно просматривала фрейм на совпадение с именем кости. Как только он будет найден, у вас будет указатель на него, который вы можете использовать для получения доступа к матрице преобразования. Функция рекурсивного поиска может иметь такой вид:


Загрузка иерархий из .X

Не следует бить мертвую лошадь (как я могу сделать такую ужасную вещь?), но я хочу слегка коснуться загрузки иерархий фреймов из .X файлов. Хотя в главе 3 детально описаны использование .X файлов и загрузка иерархий фреймов, я хочу еще раз вернуться к этому, используя специальные структуры для хранения иерархии.


Использование скелетной структуры и скелетного меша

Скелетная структура, как вы можете представить, является набором соединенных костей, образующих иерархию (иерархию костей, если быть точным). Одна кость, называемая корневой, является центральной точкой

для всей скелетной структуры. Все кости присоединяются к корневой кости либо как родственники, либо как потомки.


Использование структур скелетов и иерархий костей

Представьте себе скелетную анимацию так: ваше тело (или по крайне мере кожа) - это меш, дополненный соответствующим набором костей. Когда ваши мускулы толкают, тянут и крутят кости, ваше тело соответствующим образом меняет форму. Вместо того чтобы думать о мускулах, меняющих форму вашего тела, будем думать о костях, меняющих положение каждой части тела.


Начало скелетной анимации

Скелетная анимация - два слова, от которых на ум приходят второсортные фильмы ужасов, в которых из могил восстают мертвецы, преследовать живых. Для программистов же эти слова имеют совсем другое значение. Если вы - как я, эта тема даст вам такой прилив адреналина, какой никогда не сможет дать фильм ужасов.


  1. Работа со скелетной анимацией
  2. Parse Mesh
  3. ParseFrame
  4. Загрузка специализированных данных из .X
<< [Первая] < [Предыдущая] 1 2 3 [Следующая] > [Последняя] >>

Результаты 57 - 112 из 114



Высшая математика
В научных кругах принято считать, что в рамки высшей математики входят такие дисциплины, как аналитическая геометрия, математическая статистика, высшая и линейная алгебра, теория множеств, дифферен...

Нобелевские лауреаты
Нобелевская премия учреждена шведским химиком Альфредом Нобелем в 1895г. Впервые она была вручена в 1901г за достижения в области литературы, химии, медицины и физики. Нобелевская премия присуждаетс...

Электронная библиотека
На первых порах обсуждения проблематики электронных материалов основное внимание было сосредоточено на таких вопросах как защита цифровой информации и необходимый объем материалов, условия их сортир...
 

 
0.829