
- •Джим Адамс
- •2-е издание
- •Оглавление
- •Благодарности
- •Об авторе
- •Введение
- •О чем эта книга
- •Для кого предназначена книга
- •Организация книги
- •Содержимое CD-ROM
- •Типографские соглашения
- •Что нужно для начала
- •Глава 1 Подготовка к работе с книгой
- •Глава 1 Подготовка к работе с книгой
- •DirectX
- •Подготовка DirectX
- •Отладочные и дистрибутивные версии
- •Установка DirectX 9
- •Установка DirectMusic Producer
- •Включаемые файлы и библиотеки
- •Подготовка компилятора
- •Указание каталогов для DirectX
- •Связывание с библиотеками
- •Установка поведения по умолчанию для char
- •Окончательные и отладочные версии
- •Многопоточные библиотеки
- •Программирование для Windows
- •Потоки и многопоточность
- •Критические секции
- •Использование COM
- •Инициализация COM
- •IUnknown
- •Инициализация и освобождение объектов
- •Запрос интерфейсов
- •Поток выполнения программы
- •Модульное программирование
- •Состояния и процессы
- •Состояния приложения
- •Процессы
- •Обработка данных приложения
- •Использование упаковки данных
- •Тестирование системы упаковки данных
- •Построение каркаса приложения
- •Структурирование проекта
- •Завершаем подготовку
- •Глава 2 Рисование с DirectX Graphics
- •Глава 3 Взаимодействие с пользователем с DirectInput
- •Глава 4 Воспроизведение звуков и музыки с DirectX Audio и DirectShow
- •Глава 2 Рисование с DirectX Graphics
- •Сердце трехмерной графики
- •Системы координат
- •Конструирование объектов
- •Списки, полосы и веера
- •Порядок вершин
- •Окрашивание полигонов
- •Преобразования
- •Начинаем работать с DirectX Graphics
- •Компоненты Direct3D
- •Инициализация системы
- •Получение интерфейса Direct3D
- •Выбор видеорежима
- •Установка метода показа
- •Создание интерфейса устройства и инициализация дисплея
- •Потеря устройства
- •Знакомство с D3DX
- •Трехмерная математика
- •Матричная алгебра
- •Конструирование матриц
- •Комбинирование матриц
- •Переход от локальных координат к координатам вида
- •Переходим к рисованию
- •Использование вершин
- •Настраиваемый формат вершин
- •Использование буфера вершин
- •Создание буфера вершин
- •Блокировка буфера вершин
- •Заполнение данных вершин
- •Поток вершин
- •Вершинные шейдеры
- •Преобразования
- •Мировое преобразование
- •Преобразование вида
- •Преобразование проекции
- •Материалы и цвета
- •Очистка порта просмотра
- •Начало и завершение сцены
- •Визуализация полигонов
- •Показ сцены
- •Использование наложения текстур
- •Использование наложения текстур в Direct3D
- •Загрузка текстуры
- •Установка текстуры
- •Использование выборок
- •Визуализация текстурированных объектов
- •Альфа-смешивание
- •Включение альфа-смешивания
- •Рисование с альфа-смешиванием
- •Копирование с учетом прозрачности и альфа-проверка
- •Загрузка текстур с цветовым ключом
- •Включение альфа-проверки
- •Пример копирования с учетом прозрачности
- •Освещение
- •Использование точечного света
- •Использование зонального света
- •Использование направленного света
- •Фоновый свет
- •Установка света
- •Использование нормалей
- •Да будет свет!
- •Использование шрифтов
- •Создание шрифта
- •Рисование текста
- •Щиты
- •Частицы
- •Сортировка по глубине и Z-буферизация
- •Работа с портом просмотра
- •Работа с сетками
- •X-файлы
- •Формат X-файлов
- •Использование иерархии фреймов
- •Создание X-файлов с сетками
- •Разбор X-файлов
- •Сетки в библиотеке D3DX
- •Объект ID3DXBuffer
- •Стандартные сетки
- •Визуализация сетки
- •Скелетные сетки
- •Загрузка скелетных сеток
- •Обновление и визуализация скелетной сетки
- •X-стиль трехмерной анимации
- •Техника ключевых кадров
- •Анимация в X-файлах
- •Заканчиваем с графикой
- •Знакомство с устройствами ввода
- •Взаимодействие через клавиатуру
- •Работа с клавиатурой в Windows
- •Играем с мышью
- •Удовольствие с джойстиком
- •Использование DirectInput
- •Представляем основы DirectInput
- •Инициализация DirectInput
- •Использование устройств DirectInput
- •Получение GUID устройства
- •Создание COM-объекта устройства
- •Установка формата данных
- •Установка уровня кооперации
- •Установка специальных свойств
- •Захват устройства
- •Опрос устройства
- •Чтение данных
- •DirectInput и клавиатура
- •DirectInput и мышь
- •DirectInput и джойстик
- •Заканчиваем с вводом
- •Глава 4 Воспроизведение звуков и музыки с DirectX Audio и DirectShow
- •Основы звука
- •Цифровая звукозапись
- •Музыкальное безумие
- •MIDI
- •DirectMusic
- •Знакомство с DirectX Audio
- •Использование DirectSound
- •Инициализация DirectSound
- •Установка уровня кооперации
- •Установка формата воспроизведения
- •Создание объекта первичного звукового буфера
- •Установка формата
- •Запуск первичного звукового буфера
- •Использование вторичных звуковых буферов
- •Блокируй и загружай — загрузка звуковых данных в буфер
- •Воспроизведение звукового буфера
- •Изменение громкости, позиционирования и частоты
- •Регулировка громкости
- •Позиционирование
- •Изменение частоты
- •Потеря фокуса
- •Использование уведомлений
- •Использование потоков для сканирования событий
- •Загрузка звука в буфер
- •Потоковое воспроизведение звука
- •Работа с DirectMusic
- •Начинаем работу с DirectMusic
- •Создание объекта исполнителя
- •Создание объекта загрузчика
- •Работа с музыкальными сегментами
- •Загрузка музыкальных сегментов
- •Загрузка инструментов
- •Настройки для MIDI
- •Установка инструментов
- •Использование циклов и повторов
- •Воспроизведение и остановка сегмента
- •Выгрузка данных сегмента
- •Изменение музыки
- •Установка громкости
- •Смена темпа
- •Захват аудио-канала
- •Присоединяемся к MP3-революции
- •Использование DirectShow
- •Загрузка медиа-файла
- •Управление воспроизведением вашей музыки и звуков
- •Воспроизведение звука
- •Приостановка воспроизведения
- •Завершение воспроизведения
- •Обнаружение событий
- •Освобождение ресурсов DirectShow
- •Заканчиваем с музыкой
- •Глава 5 Работа с сетью с DirectPlay
- •Знакомство с сетями
- •Сетевые модели
- •Лобби
- •Задержка и запаздывание
- •Коммуникационные протоколы
- •Адресация
- •Введение в DirectPlay
- •Сетевые объекты
- •Работа с игроками
- •Сетевые сообщения
- •Асинхронная и синхронная работа
- •Безопасность
- •Гарантированная доставка
- •Регулировка потока
- •От маленьких байтов к большим словам
- •Идентификация приложений по GUID
- •Инициализация сетевого объекта
- •Использование адресов
- •Инициализация объекта адреса
- •Добавление компонентов
- •Установка поставщика услуг
- •Выбор порта
- •Назначение устройства
- •Использование обработчиков сообщений
- •Конфигурирование данных сессии
- •Данные сессии сервера
- •Данные сессии клиента
- •Работа с сервером
- •Поддержка игроков
- •Работа с сообщениями о создании игрока
- •Получение имени игрока
- •Уничтожение игроков
- •Получение данных
- •Отправка сообщений сервера
- •Завершение сессии на главном узле
- •Работа с клиентом
- •Получение и отправка сообщений
- •Получение идентификатора игрока
- •Завершение сессии клиента
- •Заканчиваем с сетями
- •Глава 6 Создаем ядро игры
- •Знакомство с концепцией ядра
- •Системное ядро
- •Использование объекта ядра cApplication
- •Обработка состояний с cStateManager
- •Процессы и cProcessManager
- •Управление данными с cDataPackage
- •Графическое ядро
- •Графическая система и cGraphics
- •Изображения и cTexture
- •Цвета и cMaterial
- •Освещение с cLight
- •Текст и шрифты с использованием cFont
- •Вершины и cVertexBuffer
- •Мировое преобразование с cWorldPosition
- •Преобразование вида и cCamera
- •Загружаемые сетки и использование cMesh
- •Рисуем объекты, используя cObject
- •Делаем сетки двигающимися с cAnimation
- •Ядро ввода
- •Использование DirectInput с cInput
- •Устройства ввода и cInputDevice
- •Использование ядра ввода
- •Звуковое ядро
- •Управление DirectX Audio с cSound
- •Использование волновых данных и cSoundData
- •Воспроизведение звука с cSoundChannel
- •Слушаем музыку с cMusicChannel
- •Смешивание инструментов с cDLS
- •Воспроизведение MP3 с cMP3
- •Сетевое ядро
- •Запрос адаптера с cNetworkAdapter
- •Серверы и cNetworkServer
- •Работа клиента и cNetworkClient
- •Заканчиваем изучать ядро игры
- •Часть III Программирование ролевых игр
- •Глава 7 Использование двухмерной графики
- •Глава 8 Создание трехмерного графического движка
- •Глава 9 Объединение двухмерной и трехмерной графики
- •Глава 10 Реализация скриптов
- •Глава 11 Определение и использование объектов
- •Глава 12 Управление игроками и персонажами
- •Глава 13 Работа с картами и уровнями
- •Глава 14 Создание боевых последовательностей
- •Глава 15 Сетевой режим для многопользовательской игры
- •Глава 7 Использование двухмерной графики
- •Знакомство с блоками и картами
- •Использование блоков с DirectX
- •Построение класса для работы с блоками
- •cTiles::Create
- •cTiles::Free
- •cTiles::Load
- •cTiles::Free
- •cTiles::GetWidth, cTiles::GetHeight и cTiles::GetNum
- •cTiles::SetTransparent
- •cTiles::Draw
- •Использование класса работы с блоками
- •Основы работы с блочной графикой
- •Рисование основной карты
- •Использование нескольких слоев
- •Добавление объектов
- •Плавная прокрутка
- •Карта и мышь
- •Создание класса карты
- •Псевдотрехмерные блоки
- •Работа с большими растрами
- •Создание больших блоков
- •Большой пример
- •Заканчиваем с двухмерной графикой
- •Сетки в качестве уровней
- •Загрузка уровней
- •Рисование комнат
- •Усовершенствование базовой техники
- •Знакомство с пирамидой видимого пространства
- •Плоскости и отсечение
- •Проверка видимости с плоскостями
- •Проверка всей пирамиды
- •Класс cFrustum
- •cFrustum::Construct
- •cFrustum::CheckPoint, CheckCube, CheckRectangle и CheckSphere
- •Разработка профессионального трехмерного движка
- •Знакомство с движком NodeTree
- •Создание узлов и деревьев
- •Сканирование и рисование дерева
- •Работа с группами материалов
- •Создание класса cNodeTreeMesh
- •cNodeTreeMesh::Create и cNodeTreeMesh::Free
- •cNodeTreeMesh::SortNode
- •cNodeTreeMesh::AddNode
- •cNodeTreeMesh::Render
- •Использование cNodeTreeMesh
- •Добавление к миру трехмерных объектов
- •Вычисление ограничивающей сферы
- •Ограничивающие сферы и пирамида видимого пространства
- •Обнаружение столкновений сеток
- •Столкновение с миром
- •Испускание лучей
- •Блокировка пути
- •Перемещение вверх и вниз
- •Быстрая проверка пересечения
- •Обнаружение столкновений в классе cNodeTreeMesh
- •Когда сталкиваются сетки
- •Щелчки мыши и сетки
- •Использование небесного куба
- •Создание класса небесного куба
- •cSkyBox::Create и cSkyBox::Free
- •cSkyBox::LoadTexture
- •cSkyBox::Rotate и cSkyBox::RotateRel
- •cSkyBox::Render
- •Использование класса небесного куба
- •Заканчиваем с трехмерной графикой
- •Глава 9 Объединение двухмерной и трехмерной графики
- •Смешивание двух измерений
- •Использование двухмерных объектов в трехмерном мире
- •Рисование блоков в трехмерном мире
- •Загрузка сетки уровня
- •Загрузка блоков
- •Подготовка к рисованию
- •Рисование сетки уровня
- •Рисование двухмерных объектов
- •Перемещение в трехмерном мире
- •Добавление трехмерных объектов к двухмерному миру
- •Работа с двухмерным фоном
- •Работа с сеткой сцены
- •Визуализация сцены
- •Добавление трехмерных объектов
- •Столкновения и пересечения
- •Заканчиваем смешивание графики
- •Глава 10 Реализация скриптов
- •Что такое скрипты
- •Создание системы Mad Lib Script
- •Проектирование системы Mad Lib Script
- •Программирование системы Mad Lib Script
- •Работа с шаблонами действий
- •Создание элементов скрипта
- •Объединяем все в классе cActionTemplate
- •Работа с редактором MLS Editor
- •Выполнение скриптов Mad Lib
- •Применение скриптов в играх
- •Заканчиваем со скриптами
- •Определение объектов для вашей игры
- •Форма объекта
- •Определение функции объекта
- •Оружие
- •Броня
- •Аксессуары
- •Коллекции
- •Транспорт
- •Прочее
- •Добавление функций к объекту
- •Категории предметов и значения
- •Задание цены предметов
- •Флаги предмета
- •Ограничения использования
- •Присоединение скриптов к предметам
- •Сетки и изображения
- •Итоговая структура данных предмета
- •Главный список предметов
- •Конструирование MIL
- •Использование редактора MIL
- •Доступ к предметам из MIL
- •Управление предметами с помощью системы контроля имущества
- •Разработка ICS карты
- •cMapICS::Load, cMapICS::Save и cMapICS::Free
- •cMapICS::Add и cMapICS::Remove
- •cMapICS::GetNumItems, cMapICS::GetParentItem и cMapICS::GetItem
- •Использование класса cMapICS
- •Разработка ICS персонажа
- •Определение класса cCharICS
- •Использование класса cCharICS
- •Заканчиваем с объектами и имуществом
- •Глава 12 Управление игроками и персонажами
- •Игроки, персонажи, монстры — о боже!
- •Определение персонажей в вашей игре
- •Способности персонажа
- •Атрибуты персонажа
- •Дополнительные статусы персонажа
- •Классы персонажей
- •Действия персонажей
- •Персонажи игроков
- •Передвижение игрока
- •Управление ресурсами
- •Увеличение опыта и силы
- •Независимые персонажи
- •Персонажи монстров
- •Графика персонажей
- •Перемещение персонажей
- •Управление персонажем игрока
- •Управление направлением
- •Управление поворотом
- •Управление от первого лица
- •Управление независимыми персонажами
- •Ожидание
- •Блуждание по области
- •Ходьба по маршруту
- •Использование маршрутных точек
- •Ходьба от точки к точке
- •Быстрее Пифагора
- •Прохождение маршрута
- •Следование за другим персонажем
- •Избегание персонажа
- •Автоматическое управление персонажами
- •Общение между персонажами
- •Говорящие куклы
- •Управляемые скриптами говорящие куклы
- •Показ диалогов и другого текста
- •Класс cWindow
- •cWindow::cWindow и cWindow::~cWindow
- •cWindow::Create и cWindow::Free
- •cWindow::SetText
- •cWindow::Move
- •cWindow::GetHeight
- •cWindow::Render
- •Использование cWindow
- •Скрипты и персонажи
- •Класс скрипта
- •Создание производного класса скрипта
- •Производный класс
- •Использование производного класса
- •Управление ресурсами
- •Использование предметов
- •Использование магии
- •Торговля и обмен
- •Работа с магией и заклинаниями
- •Графика заклинания
- •Функция заклинания
- •Изменение здоровья и маны
- •Установка и снятие статусов
- •Воскрешение и мгновенная смерть
- •Расколдовывание
- •Телепортация
- •Нацеливание заклинаний, стоимость и шансы
- •Главный список заклинаний
- •Список заклинаний
- •Определение заклинаний с MSL Editor
- •Создание контроллера заклинаний
- •Сетки и sSpellMeshList
- •Отслеживание заклинаний с использованием sSpellTracker
- •Класс cSpellController
- •cSpellController::cSpellController и cSpellController::~sSpellController
- •cSpellController::Init и cSpellController::Shutdown
- •cSpellController::Free
- •cSpellController::GetSpell
- •cSpellController::Add
- •cSpellController::SetAnimData
- •cSpellController::Update
- •cSpellController::Render
- •Определение жертвы и обработка эффекта заклинания
- •Использование контроллера заклинаний
- •Сражения и персонажи
- •Использование правил сражения для атаки
- •Нанесение удара
- •Отклонение атаки
- •Обработка ущерба
- •Заклинания в битве
- •Интеллект в битвах
- •Построение главного списка персонажей
- •MCL Editor
- •Использование определений персонажей
- •Создание класса контроллера персонажей
- •Сетки и sCharacterMeshList
- •Зацикливание анимации и sCharAnimationInfo
- •Перемещение и sRoutePoint
- •Отслеживание персонажей с sCharacter
- •Класс sCharacterController
- •Использование sCharacterController
- •Демонстрация персонажей в программе Chars
- •Заканчиваем с персонажами
- •Глава 13 Работа с картами и уровнями
- •Размещение персонажей на карте
- •Список персонажей карты
- •Загрузка списка персонажей карты
- •Использование списка персонажей карты в вашей игре
- •Скриптовое размещение
- •Использование триггеров карты
- •Сферические триггеры
- •Кубический триггер
- •Цилиндрический триггер
- •Треугольный триггер
- •Срабатывание триггеров
- •Создание класса триггера
- •cTrigger::cTrigger и cTrigger::~cTrigger
- •cTrigger::Load и cTrigger::Save
- •cTrigger::AddTrigger
- •cTrigger::AddSphere, cTrigger::AddBox, cTrigger::AddCylinder и cTrigger::AddTriangle
- •cTrigger::Remove и cTrigger::Free
- •cTrigger::GetTrigger
- •cTrigger::GetEnableState и cTrigger::Enable
- •cTrigger::GetNumTriggers и cTrigger::GetParentTrigger
- •Использование триггеров
- •Определение файла триггеров
- •Загрузка файла триггеров
- •Касание триггера
- •Блокирование пути барьерами
- •cBarrier::SetMesh и cBarrier::SetAnim
- •cBarrier::Render
- •Добавление барьеров с cBarrier
- •Использование класса барьера
- •Создание файла данных барьеров
- •Загрузка данных барьеров
- •Проверка столкновений с барьерами
- •Визуализация барьеров
- •Использование автоматических карт
- •Автоматические карты в действии
- •Большие карты, малые карты
- •Загрузка и отображение автоматической карты
- •Создание класса автоматической карты
- •cAutomap::cAutomap и cAutomap::~cAutomap
- •cAutomap::Create и cAutoMap::Free
- •cAutomap::Load и cAutomap::Save
- •cAutomap::GetNumSections и cAutomap::EnableSection
- •cAutomap::SetWindow и cAutomap::Render
- •Использование cAutomap
- •Заканчиваем с картами и уровнями
- •Проектирование внешних боевых последовательностей
- •Техническая сторона
- •Разработка боевых последовательностей
- •Глобальные данные
- •cApp::cApp
- •cApp::Init
- •cApp::Shutdown
- •cApp::Frame
- •cApp::GetCharacterAt
- •Использование боевых аранжировок
- •Заканчиваем с боевыми последовательностями
- •Безумная многопользовательская сеча
- •Проектирование многопользовательской игры
- •Демонстрационная программа Network Game
- •Создание архитектуры многопользовательской игры
- •Работаем вместе: клиент и сервер
- •Взгляд на сервер
- •Взгляд на клиента
- •Работа над игровым сервером
- •Хранение информации игрока
- •Обработка сообщений
- •От сообщений DirectPlay к игровым сообщениям
- •Очередь сообщений
- •Обработка игровых сообщений
- •cApp::AddPlayer
- •cApp::RemovePlayer
- •cApp::PlayerInfo
- •cApp::PlayerStateChange
- •Обновление игроков
- •Обновление сетевых клиентов
- •Вычисление запаздывания
- •Самое трудное позади!
- •Работа над игровым клиентом
- •Обработка данных игрока
- •Сетевой компонент
- •Обработка сообщений
- •cApp::CreatePlayer
- •cApp::DestroyPlayer
- •cApp::ChangeState
- •Обновление локального игрока
- •Обновление всех игроков
- •Клиент во всем блеске
- •Заканчиваем с многопользовательскими играми
- •Часть IV Завершающие штрихи
- •Глава 16 Объединяем все вместе в законченную игру
- •Глава 16 Объединяем все вместе в законченную игру
- •Проектирование простой игры
- •Написание сценария игры
- •Цель игры The Tower
- •Разработка уровней
- •Определение персонажей
- •Распределение персонажей
- •Создание предметов и заклинаний
- •Разработка скриптов
- •Определение управления
- •Планирование хода игры
- •Программирование примера игры
- •Структурирование приложения
- •Конструктор cApp
- •Функция приложения Init
- •Функция Shutdown
- •Обработка кадров в функции Frame
- •Использование обработки на основе состояний
- •Работа с картами
- •Использование барьеров и триггеров
- •Управление персонажами
- •Поддержка торговли
- •Воспроизведение звуков и музыки
- •Визуализация сцены
- •Обработка скриптов
- •Собираем части
- •Завершаем создание игры
- •Часть V Приложения
- •Приложение A Список литературы
- •Рекомендованное чтение
- •Получение помощи в Web
- •Приложение B Содержимое CD-ROM
- •DirectX 9.0 SDK
- •Пробная версия GoldWave 5
- •Пробная версия Paint Shop Pro 8
- •gameSpace Light
- •Приложение C Словарь терминов
- •Алфавитный указатель


СЕТЕВАЯ БИБЛИОТЕКА
Джим Адамс
ПРОГРАММИРОВАНИЕ РОЛЕВЫХ ИГР
С DirectX
2-е издание
NetLib 2010
Джим Адамс
Программирование ролевых игр с DirectX (2-е издание)
Thomson Course Technology PTR, 2004 ISBN: 1-59200-315-X
Аннотация
Ни один из жанров игр не способствует погружению игрока в свой мир так, как это делают ролевые игры. В них игрок прорывается сквозь барьер существующий между его действиями и фантастическим миром и становится жителем того мира. Приготовьтесь воплотить свои идеи в жизнь и создать собственную ролевую игру! Книга «Программирование ролевых игр с DirectX» покажет вам как создать графическую библиотеку и механизм сражений, как управлять игроками, использовать скрипты и предметы, и как сделать вашу игру многопользовательской. Книга разделяет ролевую игру на базовые составляющие, подробно исследует их и показывает, как вы можете применять их в своем игровом проекте. Вы научитесь рисовать с DirectX Graphics, воспроизводить звуки и музыку с DirectX Audio, работать с сетью с DirectPlay и взаимодействовать с игроком с DirectInput. Когда вы закончите чтение книги, у вас будет достаточно знаний, чтобы создать собственную законченную ролевую игру.
Понравился перевод? Не забудьте покормить переводчика.
WebMoney: Z165309743603, R229843962424
Оформление и подготовка издания |
Сетевое издательство NetLib, 2010 |
Сайт |
netlib.narod.ru |
netlib@mail.ru |

Оглавление |
|
БЛАГОДАРНОСТИ .................................................................. |
19 |
ОБ АВТОРЕ.............................................................................. |
21 |
ВВЕДЕНИЕ .............................................................................. |
23 |
О ЧЕМ ЭТА КНИГА.................................................................................................... |
23 |
ДЛЯ КОГО ПРЕДНАЗНАЧЕНА КНИГА................................................................. |
24 |
ОРГАНИЗАЦИЯ КНИГИ ........................................................................................... |
24 |
СОДЕРЖИМОЕ CD-ROM .......................................................................................... |
25 |
ТИПОГРАФСКИЕ СОГЛАШЕНИЯ......................................................................... |
25 |
ЧТО НУЖНО ДЛЯ НАЧАЛА..................................................................................... |
26 |
ЧАСТЬ I РАБОТА С КНИГОЙ .......................... |
27 |
ГЛАВА 1 ПОДГОТОВКА К РАБОТЕ С КНИГОЙ................... |
29 |
DIRECTX....................................................................................................................... |
29 |
ПОДГОТОВКА DIRECTX .............................................................................................. |
31 |
ОТЛАДОЧНЫЕ И ДИСТРИБУТИВНЫЕ ВЕРСИИ ............................................................... |
31 |
УСТАНОВКА DIRECTX9.............................................................................................. |
31 |
УСТАНОВКА DIRECTMUSIC PRODUCER....................................................................... |
33 |
ВКЛЮЧАЕМЫЕ ФАЙЛЫ И БИБЛИОТЕКИ ....................................................................... |
33 |
ПОДГОТОВКА КОМПИЛЯТОРА............................................................................ |
33 |
УКАЗАНИЕ КАТАЛОГОВ ДЛЯ DIRECTX ........................................................................ |
34 |
СВЯЗЫВАНИЕ С БИБЛИОТЕКАМИ................................................................................. |
36 |
УСТАНОВКА ПОВЕДЕНИЯ ПО УМОЛЧАНИЮ ДЛЯ CHAR................................................. |
39 |
ОКОНЧАТЕЛЬНЫЕ И ОТЛАДОЧНЫЕ ВЕРСИИ ................................................................. |
40 |
МНОГОПОТОЧНЫЕ БИБЛИОТЕКИ................................................................................. |
40 |
ПРОГРАММИРОВАНИЕ ДЛЯ WINDOWS ............................................................. |
41 |
ПОТОКИ И МНОГОПОТОЧНОСТЬ .................................................................................. |
41 |
КРИТИЧЕСКИЕ СЕКЦИИ............................................................................................... |
43 |
ИСПОЛЬЗОВАНИЕ COM.............................................................................................. |
44 |
Инициализация COM.......................................................................................... |
45 |
IUnknown ............................................................................................................. |
45 |
Инициализация и освобождение объектов......................................................... |
46 |
Запрос интерфейсов............................................................................................. |
47 |
ПОТОК ВЫПОЛНЕНИЯ ПРОГРАММЫ................................................................ |
48 |
netlib.narod.ru |
3 |

Оглавление |
|
|
МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ................................................................. |
49 |
|
СОСТОЯНИЯ И ПРОЦЕССЫ.................................................................................... |
51 |
|
СОСТОЯНИЯ ПРИЛОЖЕНИЯ .......................................................................................... |
51 |
|
ПРОЦЕССЫ .................................................................................................................. |
|
55 |
ОБРАБОТКА ДАННЫХ ПРИЛОЖЕНИЯ................................................................ |
57 |
|
ИСПОЛЬЗОВАНИЕ УПАКОВКИ ДАННЫХ........................................................................ |
57 |
|
ТЕСТИРОВАНИЕ СИСТЕМЫ УПАКОВКИ ДАННЫХ .......................................................... |
58 |
|
ПОСТРОЕНИЕ КАРКАСА ПРИЛОЖЕНИЯ ........................................................... |
60 |
|
СТРУКТУРИРОВАНИЕ ПРОЕКТА.......................................................................... |
65 |
|
ЗАВЕРШАЕМ ПОДГОТОВКУ................................................................................... |
65 |
|
ЧАСТЬ II |
ОСНОВЫ DIRECTX.......................... |
67 |
ГЛАВА 2 РИСОВАНИЕ С DIRECTX GRAPHICS.................... |
69 |
|
СЕРДЦЕ ТРЕХМЕРНОЙ ГРАФИКИ........................................................................ |
70 |
|
СИСТЕМЫ КООРДИНАТ ................................................................................................ |
71 |
|
КОНСТРУИРОВАНИЕ ОБЪЕКТОВ ................................................................................... |
73 |
|
СПИСКИ, ПОЛОСЫ И ВЕЕРА.......................................................................................... |
74 |
|
ПОРЯДОК ВЕРШИН....................................................................................................... |
75 |
|
ОКРАШИВАНИЕ ПОЛИГОНОВ ....................................................................................... |
76 |
|
ПРЕОБРАЗОВАНИЯ ....................................................................................................... |
76 |
|
НАЧИНАЕМ РАБОТАТЬ С DIRECTX GRAPHICS................................................ |
77 |
|
КОМПОНЕНТЫ DIRECT3D............................................................................................ |
78 |
|
ИНИЦИАЛИЗАЦИЯ СИСТЕМЫ ....................................................................................... |
79 |
|
ПОЛУЧЕНИЕ ИНТЕРФЕЙСА DIRECT3D.......................................................................... |
79 |
|
ВЫБОР ВИДЕОРЕЖИМА ................................................................................................ |
79 |
|
УСТАНОВКА МЕТОДА ПОКАЗА ..................................................................................... |
82 |
|
СОЗДАНИЕ ИНТЕРФЕЙСА УСТРОЙСТВА И ИНИЦИАЛИЗАЦИЯ ДИСПЛЕЯ ......................... |
84 |
|
ПОТЕРЯ УСТРОЙСТВА .................................................................................................. |
85 |
|
ЗНАКОМСТВО С D3DX ................................................................................................ |
85 |
|
ТРЕХМЕРНАЯ МАТЕМАТИКА................................................................................ |
86 |
|
МАТРИЧНАЯ АЛГЕБРА.................................................................................................. |
86 |
|
КОНСТРУИРОВАНИЕ МАТРИЦ....................................................................................... |
87 |
|
КОМБИНИРОВАНИЕ МАТРИЦ........................................................................................ |
89 |
|
ПЕРЕХОД ОТ ЛОКАЛЬНЫХ КООРДИНАТ К КООРДИНАТАМ ВИДА.................................... |
90 |
|
ПЕРЕХОДИМ К РИСОВАНИЮ................................................................................ |
92 |
|
ИСПОЛЬЗОВАНИЕ ВЕРШИН .......................................................................................... |
92 |
|
НАСТРАИВАЕМЫЙ ФОРМАТ ВЕРШИН ........................................................................... |
92 |
|
ИСПОЛЬЗОВАНИЕ БУФЕРА ВЕРШИН.............................................................................. |
94 |
|
Создание буфера вершин..................................................................................... |
95 |
|
Блокировка буфера вершин................................................................................. |
96 |
|
Заполнение данных вершин................................................................................. |
97 |
|
ПОТОК ВЕРШИН........................................................................................................... |
98 |
|
ВЕРШИННЫЕ ШЕЙДЕРЫ............................................................................................... |
99 |
|
ПРЕОБРАЗОВАНИЯ ....................................................................................................... |
99 |
|
МИРОВОЕ ПРЕОБРАЗОВАНИЕ ..................................................................................... |
100 |
|
ПРЕОБРАЗОВАНИЕ ВИДА............................................................................................ |
101 |
|
4 |
netlib.narod.ru |
|

|
Джим Адамс |
ПРЕОБРАЗОВАНИЕ ПРОЕКЦИИ................................................................................... |
103 |
МАТЕРИАЛЫ И ЦВЕТА............................................................................................... |
105 |
ОЧИСТКА ПОРТА ПРОСМОТРА ................................................................................... |
106 |
НАЧАЛО И ЗАВЕРШЕНИЕ СЦЕНЫ ............................................................................... |
107 |
ВИЗУАЛИЗАЦИЯ ПОЛИГОНОВ.................................................................................... |
107 |
ПОКАЗ СЦЕНЫ........................................................................................................... |
109 |
ИСПОЛЬЗОВАНИЕ НАЛОЖЕНИЯ ТЕКСТУР.................................................... |
109 |
ИСПОЛЬЗОВАНИЕ НАЛОЖЕНИЯ ТЕКСТУР В DIRECT3D............................................... |
111 |
ЗАГРУЗКА ТЕКСТУРЫ................................................................................................. |
112 |
УСТАНОВКА ТЕКСТУРЫ ............................................................................................ |
113 |
ИСПОЛЬЗОВАНИЕ ВЫБОРОК ...................................................................................... |
115 |
ВИЗУАЛИЗАЦИЯ ТЕКСТУРИРОВАННЫХ ОБЪЕКТОВ..................................................... |
116 |
АЛЬФА-СМЕШИВАНИЕ......................................................................................... |
117 |
ВКЛЮЧЕНИЕ АЛЬФА-СМЕШИВАНИЯ.......................................................................... |
118 |
РИСОВАНИЕ С АЛЬФА-СМЕШИВАНИЕМ..................................................................... |
119 |
КОПИРОВАНИЕ С УЧЕТОМ ПРОЗРАЧНОСТИ И АЛЬФА-ПРОВЕРКА ................................ |
119 |
ЗАГРУЗКА ТЕКСТУР С ЦВЕТОВЫМ КЛЮЧОМ............................................................... |
120 |
ВКЛЮЧЕНИЕ АЛЬФА-ПРОВЕРКИ ................................................................................ |
121 |
ПРИМЕР КОПИРОВАНИЯ С УЧЕТОМ ПРОЗРАЧНОСТИ................................................... |
122 |
ОСВЕЩЕНИЕ ............................................................................................................. |
123 |
ИСПОЛЬЗОВАНИЕ ТОЧЕЧНОГО СВЕТА........................................................................ |
126 |
ИСПОЛЬЗОВАНИЕ ЗОНАЛЬНОГО СВЕТА...................................................................... |
126 |
ИСПОЛЬЗОВАНИЕ НАПРАВЛЕННОГО СВЕТА............................................................... |
128 |
ФОНОВЫЙ СВЕТ........................................................................................................ |
129 |
УСТАНОВКА СВЕТА................................................................................................... |
129 |
ИСПОЛЬЗОВАНИЕ НОРМАЛЕЙ.................................................................................... |
129 |
ДА БУДЕТ СВЕТ!........................................................................................................ |
132 |
ИСПОЛЬЗОВАНИЕ ШРИФТОВ............................................................................. |
132 |
СОЗДАНИЕ ШРИФТА.................................................................................................. |
133 |
РИСОВАНИЕ ТЕКСТА ................................................................................................. |
135 |
ЩИТЫ......................................................................................................................... |
136 |
ЧАСТИЦЫ.................................................................................................................. |
138 |
СОРТИРОВКА ПО ГЛУБИНЕ И Z-БУФЕРИЗАЦИЯ.......................................... |
141 |
РАБОТА С ПОРТОМ ПРОСМОТРА...................................................................... |
143 |
РАБОТА С СЕТКАМИ.............................................................................................. |
144 |
X-ФАЙЛЫ.................................................................................................................. |
145 |
ФОРМАТ X-ФАЙЛОВ ................................................................................................. |
145 |
Использование иерархии фреймов................................................................... |
146 |
СОЗДАНИЕ X-ФАЙЛОВ С СЕТКАМИ............................................................................ |
148 |
РАЗБОР X-ФАЙЛОВ.................................................................................................... |
148 |
СЕТКИ В БИБЛИОТЕКЕ D3DX.............................................................................. |
151 |
ОБЪЕКТ ID3DXBUFFER ............................................................................................ |
151 |
СТАНДАРТНЫЕ СЕТКИ............................................................................................... |
152 |
ВИЗУАЛИЗАЦИЯ СЕТКИ............................................................................................. |
154 |
СКЕЛЕТНЫЕ СЕТКИ ................................................................................................... |
155 |
Загрузка скелетных сеток.................................................................................. |
156 |
Обновление и визуализация скелетной сетки.................................................. |
157 |
X-СТИЛЬ ТРЕХМЕРНОЙ АНИМАЦИИ........................................................................... |
158 |
netlib.narod.ru |
5 |

Оглавление |
|
|
|
ТЕХНИКА КЛЮЧЕВЫХ КАДРОВ................................................................................... |
159 |
|
АНИМАЦИЯ В X-ФАЙЛАХ .......................................................................................... |
160 |
|
ЗАКАНЧИВАЕМ С ГРАФИКОЙ............................................................................. |
161 |
ГЛАВА 3 ВЗАИМОДЕЙСТВИЕ С ПОЛЬЗОВАТЕЛЕМ С |
|
|
|
DIRECTINPUT....................................................... |
163 |
|
ЗНАКОМСТВО С УСТРОЙСТВАМИ ВВОДА...................................................... |
163 |
|
ВЗАИМОДЕЙСТВИЕ ЧЕРЕЗ КЛАВИАТУРУ..................................................................... |
164 |
|
Работа с клавиатурой в Windows....................................................................... |
165 |
|
ИГРАЕМ С МЫШЬЮ.................................................................................................... |
166 |
|
УДОВОЛЬСТВИЕ С ДЖОЙСТИКОМ............................................................................... |
168 |
|
ИСПОЛЬЗОВАНИЕ DIRECTINPUT ....................................................................... |
169 |
|
ПРЕДСТАВЛЯЕМ ОСНОВЫ DIRECTINPUT..................................................................... |
169 |
|
ИНИЦИАЛИЗАЦИЯ DIRECTINPUT................................................................................ |
171 |
|
ИСПОЛЬЗОВАНИЕ УСТРОЙСТВ DIRECTINPUT.............................................. |
172 |
|
ПОЛУЧЕНИЕ GUIDУСТРОЙСТВА............................................................................... |
173 |
|
СОЗДАНИЕ COM-ОБЪЕКТА УСТРОЙСТВА................................................................... |
177 |
|
УСТАНОВКА ФОРМАТА ДАННЫХ................................................................................ |
177 |
|
УСТАНОВКА УРОВНЯ КООПЕРАЦИИ........................................................................... |
178 |
|
УСТАНОВКА СПЕЦИАЛЬНЫХ СВОЙСТВ ...................................................................... |
179 |
|
ЗАХВАТ УСТРОЙСТВА ................................................................................................ |
181 |
|
ОПРОС УСТРОЙСТВА.................................................................................................. |
182 |
|
ЧТЕНИЕ ДАННЫХ....................................................................................................... |
182 |
|
DIRECTINPUT И КЛАВИАТУРА............................................................................ |
183 |
|
DIRECTINPUT И МЫШЬ ......................................................................................... |
185 |
|
DIRECTINPUT И ДЖОЙСТИК................................................................................ |
186 |
|
ЗАКАНЧИВАЕМ С ВВОДОМ................................................................................... |
191 |
ГЛАВА 4 ВОСПРОИЗВЕДЕНИЕ ЗВУКОВ И МУЗЫКИ С |
|
|
|
DIRECTX AUDIO И DIRECTSHOW....................... |
193 |
|
ОСНОВЫ ЗВУКА....................................................................................................... |
193 |
|
ЦИФРОВАЯ ЗВУКОЗАПИСЬ ......................................................................................... |
194 |
|
МУЗЫКАЛЬНОЕ БЕЗУМИЕ........................................................................................... |
196 |
|
MIDI.................................................................................................................... |
196 |
|
DirectMusic ......................................................................................................... |
196 |
|
MP3..................................................................................................................... |
197 |
|
ЗНАКОМСТВО С DIRECTX AUDIO....................................................................... |
197 |
|
ИСПОЛЬЗОВАНИЕ DIRECTSOUND...................................................................... |
198 |
|
ИНИЦИАЛИЗАЦИЯ DIRECTSOUND.............................................................................. |
200 |
|
УСТАНОВКА УРОВНЯ КООПЕРАЦИИ........................................................................... |
201 |
|
УСТАНОВКА ФОРМАТА ВОСПРОИЗВЕДЕНИЯ............................................................... |
202 |
|
Создание объекта первичного звукового буфера............................................. |
202 |
|
Установка формата............................................................................................. |
205 |
|
ЗАПУСК ПЕРВИЧНОГО ЗВУКОВОГО БУФЕРА................................................................ |
206 |
|
ИСПОЛЬЗОВАНИЕ ВТОРИЧНЫХ ЗВУКОВЫХ БУФЕРОВ.................................................. |
208 |
|
БЛОКИРУЙ И ЗАГРУЖАЙ — ЗАГРУЗКА ЗВУКОВЫХ ДАННЫХ В БУФЕР.......................... |
209 |
|
ВОСПРОИЗВЕДЕНИЕ ЗВУКОВОГО БУФЕРА................................................................... |
212 |
6 |
netlib.narod.ru |
|

|
Джим Адамс |
ИЗМЕНЕНИЕ ГРОМКОСТИ, ПОЗИЦИОНИРОВАНИЯ И ЧАСТОТЫ.................................... |
212 |
Регулировка громкости..................................................................................... |
213 |
Позиционирование............................................................................................ |
213 |
Изменение частоты............................................................................................ |
214 |
ПОТЕРЯ ФОКУСА....................................................................................................... |
215 |
ИСПОЛЬЗОВАНИЕ УВЕДОМЛЕНИЙ ............................................................................. |
215 |
ИСПОЛЬЗОВАНИЕ ПОТОКОВ ДЛЯ СКАНИРОВАНИЯ СОБЫТИЙ..................................... |
219 |
ЗАГРУЗКА ЗВУКА В БУФЕР ......................................................................................... |
221 |
ПОТОКОВОЕ ВОСПРОИЗВЕДЕНИЕ ЗВУКА.................................................................... |
224 |
РАБОТА С DIRECTMUSIC...................................................................................... |
226 |
НАЧИНАЕМ РАБОТУ С DIRECTMUSIC......................................................................... |
227 |
СОЗДАНИЕ ОБЪЕКТА ИСПОЛНИТЕЛЯ ......................................................................... |
228 |
СОЗДАНИЕ ОБЪЕКТА ЗАГРУЗЧИКА............................................................................. |
229 |
РАБОТА С МУЗЫКАЛЬНЫМИ СЕГМЕНТАМИ................................................................ |
231 |
Загрузка музыкальных сегментов..................................................................... |
231 |
Загрузка инструментов...................................................................................... |
233 |
НАСТРОЙКИ ДЛЯ MIDI ............................................................................................. |
236 |
Установка инструментов................................................................................... |
236 |
Использование циклов и повторов................................................................... |
237 |
Воспроизведение и остановка сегмента........................................................... |
238 |
Выгрузка данных сегмента ............................................................................... |
239 |
ИЗМЕНЕНИЕ МУЗЫКИ................................................................................................ |
240 |
Установка громкости......................................................................................... |
240 |
Смена темпа....................................................................................................... |
242 |
Захват аудио-канала.......................................................................................... |
243 |
ПРИСОЕДИНЯЕМСЯ К MP3-РЕВОЛЮЦИИ...................................................... |
245 |
ИСПОЛЬЗОВАНИЕ DIRECTSHOW................................................................................ |
245 |
ЗАГРУЗКА МЕДИА-ФАЙЛА ......................................................................................... |
247 |
УПРАВЛЕНИЕ ВОСПРОИЗВЕДЕНИЕМ ВАШЕЙ МУЗЫКИИ ЗВУКОВ................................ |
248 |
Воспроизведение звука ..................................................................................... |
248 |
Приостановка воспроизведения........................................................................ |
248 |
Завершение воспроизведения........................................................................... |
248 |
ОБНАРУЖЕНИЕ СОБЫТИЙ.......................................................................................... |
249 |
ОСВОБОЖДЕНИЕ РЕСУРСОВ DIRECTSHOW................................................................. |
250 |
ЗАКАНЧИВАЕМ С МУЗЫКОЙ.............................................................................. |
251 |
ГЛАВА 5 РАБОТА С СЕТЬЮ С DIRECTPLAY .................... |
253 |
ЗНАКОМСТВО С СЕТЯМИ..................................................................................... |
253 |
СЕТЕВЫЕ МОДЕЛИ .................................................................................................... |
254 |
ЛОББИ....................................................................................................................... |
255 |
ЗАДЕРЖКА И ЗАПАЗДЫВАНИЕ ................................................................................... |
256 |
КОММУНИКАЦИОННЫЕ ПРОТОКОЛЫ ........................................................................ |
256 |
АДРЕСАЦИЯ.............................................................................................................. |
257 |
ВВЕДЕНИЕ В DIRECTPLAY ................................................................................... |
258 |
СЕТЕВЫЕ ОБЪЕКТЫ................................................................................................... |
259 |
РАБОТА С ИГРОКАМИ................................................................................................ |
260 |
СЕТЕВЫЕ СООБЩЕНИЯ.............................................................................................. |
261 |
Асинхронная и синхронная работа................................................................... |
262 |
netlib.narod.ru |
7 |

Оглавление |
|
|
|
Безопасность....................................................................................................... |
263 |
|
Гарантированная доставка................................................................................. |
263 |
|
Регулировка потока............................................................................................ |
263 |
|
ОТ МАЛЕНЬКИХ БАЙТОВ К БОЛЬШИМ СЛОВАМ .......................................................... |
264 |
|
ИДЕНТИФИКАЦИЯ ПРИЛОЖЕНИЙ ПО GUID............................................................... |
264 |
|
ИНИЦИАЛИЗАЦИЯ СЕТЕВОГО ОБЪЕКТА........................................................ |
265 |
|
ИСПОЛЬЗОВАНИЕ АДРЕСОВ................................................................................ |
266 |
|
ИНИЦИАЛИЗАЦИЯ ОБЪЕКТА АДРЕСА.......................................................................... |
267 |
|
ДОБАВЛЕНИЕ КОМПОНЕНТОВ.................................................................................... |
267 |
|
УСТАНОВКА ПОСТАВЩИКА УСЛУГ ............................................................................ |
269 |
|
ВЫБОР ПОРТА............................................................................................................ |
269 |
|
НАЗНАЧЕНИЕ УСТРОЙСТВА ....................................................................................... |
270 |
|
ИСПОЛЬЗОВАНИЕ ОБРАБОТЧИКОВ СООБЩЕНИЙ..................................... |
272 |
|
КОНФИГУРИРОВАНИЕ ДАННЫХ СЕССИИ...................................................... |
274 |
|
ДАННЫЕ СЕССИИ СЕРВЕРА......................................................................................... |
274 |
|
ДАННЫЕ СЕССИИ КЛИЕНТА ....................................................................................... |
276 |
|
РАБОТА С СЕРВЕРОМ............................................................................................. |
276 |
|
ПОДДЕРЖКА ИГРОКОВ............................................................................................... |
279 |
|
Работа с сообщениями о создании игрока ........................................................ |
279 |
|
Получение имени игрока................................................................................... |
280 |
|
Уничтожение игроков........................................................................................ |
281 |
|
ПОЛУЧЕНИЕ ДАННЫХ................................................................................................ |
282 |
|
ОТПРАВКА СООБЩЕНИЙ СЕРВЕРА.............................................................................. |
284 |
|
ЗАВЕРШЕНИЕ СЕССИИ НА ГЛАВНОМ УЗЛЕ.................................................................. |
286 |
|
РАБОТА С КЛИЕНТОМ........................................................................................... |
287 |
|
ПОЛУЧЕНИЕ И ОТПРАВКА СООБЩЕНИЙ ..................................................................... |
291 |
|
ПОЛУЧЕНИЕ ИДЕНТИФИКАТОРА ИГРОКА ................................................................... |
291 |
|
ЗАВЕРШЕНИЕ СЕССИИ КЛИЕНТА ................................................................................ |
292 |
|
ЗАКАНЧИВАЕМ С СЕТЯМИ................................................................................... |
292 |
ГЛАВА 6 СОЗДАЕМ ЯДРО ИГРЫ ....................................... |
295 |
|
|
ЗНАКОМСТВО С КОНЦЕПЦИЕЙ ЯДРА.............................................................. |
295 |
|
СИСТЕМНОЕ ЯДРО.................................................................................................. |
297 |
|
ИСПОЛЬЗОВАНИЕ ОБЪЕКТА ЯДРА CAPPLICATION ....................................................... |
297 |
|
ОБРАБОТКА СОСТОЯНИЙ С CSTATEMANAGER............................................................ |
300 |
|
ПРОЦЕССЫ И CPROCESSMANAGER............................................................................. |
302 |
|
УПРАВЛЕНИЕ ДАННЫМИ С CDATAPACKAGE.............................................................. |
303 |
|
ГРАФИЧЕСКОЕ ЯДРО............................................................................................. |
304 |
|
ГРАФИЧЕСКАЯ СИСТЕМА И CGRAPHICS ..................................................................... |
305 |
|
ИЗОБРАЖЕНИЯ И CTEXTURE ...................................................................................... |
308 |
|
ЦВЕТА И CMATERIAL................................................................................................. |
309 |
|
ОСВЕЩЕНИЕ С CLIGHT............................................................................................... |
311 |
|
ТЕКСТ И ШРИФТЫ С ИСПОЛЬЗОВАНИЕМ CFONT ......................................................... |
312 |
|
ВЕРШИНЫ И CVERTEXBUFFER................................................................................... |
314 |
|
МИРОВОЕ ПРЕОБРАЗОВАНИЕ С CWORLDPOSITION ..................................................... |
316 |
|
ПРЕОБРАЗОВАНИЕ ВИДА И CCAMERA ........................................................................ |
318 |
|
ЗАГРУЖАЕМЫЕ СЕТКИ И ИСПОЛЬЗОВАНИЕ CMESH .................................................... |
320 |
|
РИСУЕМ ОБЪЕКТЫ, ИСПОЛЬЗУЯ COBJECT................................................................... |
321 |
8 |
netlib.narod.ru |
|

Джим Адамс |
|
ДЕЛАЕМ СЕТКИ ДВИГАЮЩИМИСЯ С CANIMATION .................................................... |
324 |
ЯДРО ВВОДА ............................................................................................................. |
325 |
ИСПОЛЬЗОВАНИЕ DIRECTINPUT С CINPUT................................................................. |
326 |
УСТРОЙСТВА ВВОДА И CINPUTDEVICE...................................................................... |
326 |
ИСПОЛЬЗОВАНИЕ ЯДРА ВВОДА ................................................................................. |
329 |
ЗВУКОВОЕ ЯДРО...................................................................................................... |
329 |
УПРАВЛЕНИЕ DIRECTX AUDIO С CSOUND................................................................. |
330 |
ИСПОЛЬЗОВАНИЕ ВОЛНОВЫХ ДАННЫХ И CSOUNDDATA........................................... |
332 |
ВОСПРОИЗВЕДЕНИЕ ЗВУКА С CSOUNDCHANNEL........................................................ |
334 |
СЛУШАЕМ МУЗЫКУ С CMUSICCHANNEL................................................................... |
337 |
СМЕШИВАНИЕ ИНСТРУМЕНТОВ С CDLS................................................................... |
338 |
ВОСПРОИЗВЕДЕНИЕ MP3С CMP3............................................................................. |
340 |
СЕТЕВОЕ ЯДРО ........................................................................................................ |
341 |
ЗАПРОС АДАПТЕРА С CNETWORKADAPTER ............................................................... |
341 |
СЕРВЕРЫ И CNETWORKSERVER................................................................................. |
342 |
РАБОТА КЛИЕНТА И CNETWORKCLIENT .................................................................... |
345 |
ЗАКАНЧИВАЕМ ИЗУЧАТЬ ЯДРО ИГРЫ............................................................ |
347 |
ЧАСТЬ III ПРОГРАММИРОВАНИЕ РОЛЕВЫХ |
|
ИГР .................................................... |
349 |
ГЛАВА 7 ИСПОЛЬЗОВАНИЕ ДВУХМЕРНОЙ ГРАФИКИ... |
351 |
ЗНАКОМСТВО С БЛОКАМИ И КАРТАМИ ........................................................ |
351 |
ИСПОЛЬЗОВАНИЕ БЛОКОВ С DIRECTX .......................................................... |
352 |
ПОСТРОЕНИЕ КЛАССА ДЛЯ РАБОТЫ С БЛОКАМИ........................................................ |
356 |
cTiles::Create...................................................................................................... |
357 |
cTiles::Free ......................................................................................................... |
358 |
cTiles::Load ........................................................................................................ |
358 |
cTiles::Free ......................................................................................................... |
360 |
cTiles::GetWidth, cTiles::GetHeight и cTiles::GetNum....................................... |
360 |
cTiles::SetTransparent......................................................................................... |
361 |
cTiles::Draw........................................................................................................ |
361 |
ИСПОЛЬЗОВАНИЕ КЛАССА РАБОТЫ С БЛОКАМИ........................................................ |
362 |
ОСНОВЫ РАБОТЫ С БЛОЧНОЙ ГРАФИКОЙ.................................................. |
363 |
РИСОВАНИЕ ОСНОВНОЙ КАРТЫ ................................................................................ |
363 |
ИСПОЛЬЗОВАНИЕ НЕСКОЛЬКИХ СЛОЕВ ..................................................................... |
364 |
ДОБАВЛЕНИЕ ОБЪЕКТОВ........................................................................................... |
365 |
ПЛАВНАЯ ПРОКРУТКА............................................................................................... |
366 |
КАРТА И МЫШЬ......................................................................................................... |
368 |
СОЗДАНИЕ КЛАССА КАРТЫ ....................................................................................... |
370 |
ПСЕВДОТРЕХМЕРНЫЕ БЛОКИ........................................................................... |
375 |
РАБОТА С БОЛЬШИМИ РАСТРАМИ.................................................................. |
376 |
СОЗДАНИЕ БОЛЬШИХ БЛОКОВ................................................................................... |
377 |
БОЛЬШОЙ ПРИМЕР.................................................................................................... |
377 |
ЗАКАНЧИВАЕМ С ДВУХМЕРНОЙ ГРАФИКОЙ............................................... |
378 |
netlib.narod.ru |
9 |

Оглавление |
|
ГЛАВА 8 СОЗДАНИЕ ТРЕХМЕРНОГО ГРАФИЧЕСКОГО |
|
ДВИЖКА............................................................... |
379 |
СЕТКИ В КАЧЕСТВЕ УРОВНЕЙ............................................................................ |
379 |
ЗАГРУЗКА УРОВНЕЙ................................................................................................... |
380 |
РИСОВАНИЕ КОМНАТ................................................................................................. |
381 |
УСОВЕРШЕНСТВОВАНИЕ БАЗОВОЙ ТЕХНИКИ............................................................. |
383 |
ЗНАКОМСТВО С ПИРАМИДОЙ ВИДИМОГО ПРОСТРАНСТВА................... |
384 |
ПЛОСКОСТИ И ОТСЕЧЕНИЕ ........................................................................................ |
385 |
Проверка видимости с плоскостями.................................................................. |
387 |
Проверка всей пирамиды................................................................................... |
387 |
КЛАСС CFRUSTUM ..................................................................................................... |
388 |
cFrustum::Construct............................................................................................. |
389 |
cFrustum::CheckPoint, CheckCube, CheckRectangle и CheckSphere .................. |
390 |
РАЗРАБОТКА ПРОФЕССИОНАЛЬНОГО ТРЕХМЕРНОГО ДВИЖКА .......... |
393 |
ЗНАКОМСТВО С ДВИЖКОМ NODETREE....................................................................... |
394 |
Создание узлов и деревьев................................................................................. |
395 |
Сканирование и рисование дерева .................................................................... |
397 |
РАБОТА С ГРУППАМИ МАТЕРИАЛОВ........................................................................... |
397 |
СОЗДАНИЕ КЛАССА CNODETREEMESH ...................................................................... |
398 |
cNodeTreeMesh::Create и cNodeTreeMesh::Free................................................ |
403 |
cNodeTreeMesh::SortNode.................................................................................. |
406 |
cNodeTreeMesh::IsPolygonContained и cNodeTreeMesh::CountPolygons.......... |
408 |
cNodeTreeMesh::AddNode.................................................................................. |
409 |
cNodeTreeMesh::Render...................................................................................... |
412 |
ИСПОЛЬЗОВАНИЕ CNODETREEMESH ......................................................................... |
414 |
ДОБАВЛЕНИЕ К МИРУ ТРЕХМЕРНЫХ ОБЪЕКТОВ....................................... |
415 |
ВЫЧИСЛЕНИЕ ОГРАНИЧИВАЮЩЕЙ СФЕРЫ................................................................. |
416 |
ОГРАНИЧИВАЮЩИЕ СФЕРЫ И ПИРАМИДА ВИДИМОГО ПРОСТРАНСТВА...................... |
417 |
ОБНАРУЖЕНИЕ СТОЛКНОВЕНИЙ СЕТОК...................................................... |
418 |
СТОЛКНОВЕНИЕ С МИРОМ ......................................................................................... |
418 |
Испускание лучей .............................................................................................. |
418 |
Блокировка пути................................................................................................. |
419 |
Перемещение вверх и вниз................................................................................ |
420 |
Быстрая проверка пересечения.......................................................................... |
422 |
Обнаружение столкновений в классе cNodeTreeMesh..................................... |
422 |
КОГДА СТАЛКИВАЮТСЯ СЕТКИ ................................................................................. |
422 |
ЩЕЛЧКИ МЫШИ И СЕТКИ .......................................................................................... |
424 |
ИСПОЛЬЗОВАНИЕ НЕБЕСНОГО КУБА.............................................................. |
426 |
СОЗДАНИЕ КЛАССА НЕБЕСНОГО КУБА ....................................................................... |
427 |
cSkyBox::Create и cSkyBox::Free....................................................................... |
428 |
cSkyBox::LoadTexture ........................................................................................ |
429 |
cSkyBox::Rotate и cSkyBox::RotateRel............................................................... |
430 |
cSkyBox::Render................................................................................................. |
430 |
ИСПОЛЬЗОВАНИЕ КЛАССА НЕБЕСНОГО КУБА............................................................. |
431 |
ЗАКАНЧИВАЕМ С ТРЕХМЕРНОЙ ГРАФИКОЙ................................................. |
431 |
10 |
netlib.narod.ru |

Джим Адамс |
|
ГЛАВА 9 ОБЪЕДИНЕНИЕ ДВУХМЕРНОЙ И ТРЕХМЕРНОЙ |
|
ГРАФИКИ............................................................. |
433 |
СМЕШИВАНИЕ ДВУХ ИЗМЕРЕНИЙ................................................................... |
433 |
ИСПОЛЬЗОВАНИЕ ДВУХМЕРНЫХ ОБЪЕКТОВ В ТРЕХМЕРНОМ МИРЕ 434 |
|
РИСОВАНИЕ БЛОКОВ В ТРЕХМЕРНОМ МИРЕ............................................................... |
434 |
Загрузка сетки уровня....................................................................................... |
436 |
Загрузка блоков ................................................................................................. |
436 |
Подготовка к рисованию................................................................................... |
436 |
Рисование сетки уровня.................................................................................... |
437 |
Рисование двухмерных объектов...................................................................... |
437 |
ПЕРЕМЕЩЕНИЕ В ТРЕХМЕРНОМ МИРЕ....................................................................... |
438 |
ДОБАВЛЕНИЕ ТРЕХМЕРНЫХ ОБЪЕКТОВ К ДВУХМЕРНОМУ МИРУ...... |
438 |
РАБОТА С ДВУХМЕРНЫМ ФОНОМ.............................................................................. |
441 |
РАБОТА С СЕТКОЙ СЦЕНЫ ......................................................................................... |
443 |
ВИЗУАЛИЗАЦИЯ СЦЕНЫ ............................................................................................ |
445 |
ДОБАВЛЕНИЕ ТРЕХМЕРНЫХ ОБЪЕКТОВ ..................................................................... |
447 |
СТОЛКНОВЕНИЯ И ПЕРЕСЕЧЕНИЯ.............................................................................. |
447 |
ЗАКАНЧИВАЕМ СМЕШИВАНИЕ ГРАФИКИ.................................................... |
447 |
ГЛАВА 10 РЕАЛИЗАЦИЯ СКРИПТОВ.................................. |
449 |
ЧТО ТАКОЕ СКРИПТЫ .......................................................................................... |
449 |
СОЗДАНИЕ СИСТЕМЫ MAD LIB SCRIPT.......................................................... |
451 |
ПРОЕКТИРОВАНИЕ СИСТЕМЫ MAD LIB SCRIPT ......................................................... |
451 |
ПРОГРАММИРОВАНИЕ СИСТЕМЫ MAD LIB SCRIPT.................................................... |
452 |
Работа с шаблонами действий.......................................................................... |
453 |
Создание элементов скрипта............................................................................. |
457 |
Объединяем все в классе cActionTemplate....................................................... |
462 |
РАБОТА С РЕДАКТОРОМ MLS EDITOR............................................................. |
469 |
ВЫПОЛНЕНИЕ СКРИПТОВ MAD LIB................................................................. |
472 |
ПРИМЕНЕНИЕ СКРИПТОВ В ИГРАХ................................................................. |
476 |
ЗАКАНЧИВАЕМ СО СКРИПТАМИ ...................................................................... |
476 |
ГЛАВА 11 ОПРЕДЕЛЕНИЕ И ИСПОЛЬЗОВАНИЕ ОБЪЕКТОВ |
|
.............................................................................. |
477 |
ОПРЕДЕЛЕНИЕ ОБЪЕКТОВ ДЛЯ ВАШЕЙ ИГРЫ............................................ |
477 |
ФОРМА ОБЪЕКТА ...................................................................................................... |
478 |
ОПРЕДЕЛЕНИЕ ФУНКЦИИ ОБЪЕКТА ........................................................................... |
479 |
Оружие............................................................................................................... |
481 |
Броня.................................................................................................................. |
482 |
Аксессуары ........................................................................................................ |
482 |
Еда...................................................................................................................... |
482 |
Коллекции.......................................................................................................... |
482 |
Транспорт........................................................................................................... |
482 |
Прочее................................................................................................................ |
483 |
ДОБАВЛЕНИЕ ФУНКЦИЙ К ОБЪЕКТУ.......................................................................... |
483 |
Категории предметов и значения...................................................................... |
483 |
netlib.narod.ru |
11 |

Оглавление |
|
|
|
Задание цены предметов.................................................................................... |
484 |
|
Флаги предмета.................................................................................................. |
484 |
|
Ограничения использования.............................................................................. |
485 |
|
Присоединение скриптов к предметам ............................................................. |
486 |
|
Сетки и изображения......................................................................................... |
487 |
|
Итоговая структура данных предмета............................................................... |
487 |
ГЛАВНЫЙ СПИСОК ПРЕДМЕТОВ....................................................................... |
488 |
|
|
КОНСТРУИРОВАНИЕ MIL........................................................................................... |
489 |
|
ИСПОЛЬЗОВАНИЕ РЕДАКТОРА MIL............................................................................ |
490 |
|
ДОСТУП К ПРЕДМЕТАМ ИЗMIL ................................................................................. |
493 |
УПРАВЛЕНИЕ ПРЕДМЕТАМИ С ПОМОЩЬЮ СИСТЕМЫ КОНТРОЛЯ |
|
|
ИМУЩЕСТВА ............................................................................................................ |
493 |
|
|
РАЗРАБОТКА ICS КАРТЫ............................................................................................ |
495 |
|
cMapICS::Load, cMapICS::Save и cMapICS::Free.............................................. |
498 |
|
cMapICS::Add и cMapICS::Remove ................................................................... |
501 |
|
cMapICS::GetNumItems, cMapICS::GetParentItem и cMapICS::GetItem........... |
503 |
|
Использование класса cMapICS........................................................................ |
503 |
|
РАЗРАБОТКА ICS ПЕРСОНАЖА................................................................................... |
505 |
|
Определение класса cCharICS........................................................................... |
506 |
|
Использование класса cCharICS........................................................................ |
509 |
ЗАКАНЧИВАЕМ С ОБЪЕКТАМИ И ИМУЩЕСТВОМ....................................... |
510 |
|
ГЛАВА 12 УПРАВЛЕНИЕ ИГРОКАМИ И ПЕРСОНАЖАМИ..511 |
||
ИГРОКИ, ПЕРСОНАЖИ, МОНСТРЫ — О БОЖЕ!............................................. |
511 |
|
|
ОПРЕДЕЛЕНИЕ ПЕРСОНАЖЕЙ В ВАШЕЙ ИГРЕ ............................................................. |
513 |
|
Способности персонажа..................................................................................... |
513 |
|
Атрибуты персонажа.......................................................................................... |
515 |
|
Дополнительные статусы персонажа................................................................ |
516 |
|
Классы персонажей............................................................................................ |
518 |
|
Действия персонажей......................................................................................... |
518 |
|
ПЕРСОНАЖИ ИГРОКОВ............................................................................................... |
520 |
|
Передвижение игрока........................................................................................ |
520 |
|
Управление ресурсами....................................................................................... |
520 |
|
Увеличение опыта и силы.................................................................................. |
521 |
|
НЕЗАВИСИМЫЕ ПЕРСОНАЖИ ..................................................................................... |
522 |
|
Персонажи монстров.......................................................................................... |
523 |
|
Графика персонажей.......................................................................................... |
524 |
|
ПЕРЕМЕЩЕНИЕ ПЕРСОНАЖЕЙ.................................................................................... |
524 |
|
УПРАВЛЕНИЕ ПЕРСОНАЖЕМ ИГРОКА......................................................................... |
525 |
|
Управление направлением................................................................................. |
526 |
|
Управление поворотом...................................................................................... |
528 |
|
Управление от первого лица.............................................................................. |
529 |
|
УПРАВЛЕНИЕ НЕЗАВИСИМЫМИ ПЕРСОНАЖАМИ........................................................ |
530 |
|
Ожидание............................................................................................................ |
530 |
|
Блуждание по области ....................................................................................... |
530 |
|
Ходьба по маршруту.......................................................................................... |
532 |
|
Использование маршрутных точек............................................................. |
532 |
|
Ходьба от точки к точке............................................................................. |
533 |
12 |
netlib.narod.ru |
|

Джим Адамс |
|
Быстрее Пифагора...................................................................................... |
533 |
Прохождение маршрута............................................................................. |
535 |
Следование за другим персонажем................................................................... |
536 |
Избегание персонажа........................................................................................ |
537 |
АВТОМАТИЧЕСКОЕ УПРАВЛЕНИЕ ПЕРСОНАЖАМИ .................................................... |
538 |
ОБЩЕНИЕ МЕЖДУ ПЕРСОНАЖАМИ................................................................ |
538 |
ГОВОРЯЩИЕ КУКЛЫ.................................................................................................. |
539 |
Управляемые скриптами говорящие куклы..................................................... |
539 |
Показ диалогов и другого текста...................................................................... |
540 |
Класс cWindow.................................................................................................. |
541 |
cWindow::cWindow и cWindow::~cWindow.................................................. |
542 |
cWindow::Create и cWindow::Free ............................................................... |
543 |
cWindow::SetText .......................................................................................... |
543 |
cWindow::Move............................................................................................. |
544 |
cWindow::GetHeight ..................................................................................... |
546 |
cWindow::Render .......................................................................................... |
546 |
Использование cWindow................................................................................... |
547 |
СКРИПТЫ И ПЕРСОНАЖИ................................................................................... |
548 |
КЛАСС СКРИПТА ....................................................................................................... |
548 |
СОЗДАНИЕ ПРОИЗВОДНОГО КЛАССА СКРИПТА .......................................................... |
549 |
Производный класс........................................................................................... |
550 |
ИСПОЛЬЗОВАНИЕ ПРОИЗВОДНОГО КЛАССА............................................................... |
553 |
УПРАВЛЕНИЕ РЕСУРСАМИ................................................................................. |
553 |
ИСПОЛЬЗОВАНИЕ ПРЕДМЕТОВ .................................................................................. |
553 |
ИСПОЛЬЗОВАНИЕ МАГИИ.......................................................................................... |
554 |
ТОРГОВЛЯ И ОБМЕН .................................................................................................. |
555 |
РАБОТА С МАГИЕЙ И ЗАКЛИНАНИЯМИ......................................................... |
556 |
ГРАФИКА ЗАКЛИНАНИЯ ............................................................................................ |
556 |
ФУНКЦИЯ ЗАКЛИНАНИЯ ........................................................................................... |
558 |
Изменение здоровья и маны.............................................................................. |
559 |
Установка и снятие статусов............................................................................. |
560 |
Воскрешение и мгновенная смерть.................................................................. |
560 |
Расколдовывание............................................................................................... |
560 |
Телепортация..................................................................................................... |
561 |
НАЦЕЛИВАНИЕ ЗАКЛИНАНИЙ, СТОИМОСТЬ И ШАНСЫ .............................................. |
561 |
ГЛАВНЫЙ СПИСОК ЗАКЛИНАНИЙ.............................................................................. |
561 |
СПИСОК ЗАКЛИНАНИЙ.............................................................................................. |
564 |
Определение заклинаний с MSL Editor............................................................ |
564 |
СОЗДАНИЕ КОНТРОЛЛЕРА ЗАКЛИНАНИЙ ................................................................... |
566 |
Сетки и sSpellMeshList...................................................................................... |
567 |
Отслеживание заклинаний с использованием sSpellTracker ........................... |
567 |
Класс cSpellController........................................................................................ |
569 |
cSpellController::cSpellController и cSpellController::~sSpellController..... |
571 |
cSpellController::Init и cSpellController::Shutdown...................................... |
571 |
cSpellController::Free................................................................................... |
571 |
cSpellController::GetSpell ............................................................................. |
571 |
cSpellController::Add .................................................................................... |
572 |
cSpellController::SetAnimData...................................................................... |
572 |
netlib.narod.ru |
13 |

Оглавление |
|
|
|
cSpellController::Update................................................................................ |
572 |
|
cSpellController::Render................................................................................ |
572 |
|
Определение жертвы и обработка эффекта заклинания................................... |
572 |
|
ИСПОЛЬЗОВАНИЕ КОНТРОЛЛЕРА ЗАКЛИНАНИЙ ......................................................... |
572 |
СРАЖЕНИЯ И ПЕРСОНАЖИ................................................................................. |
573 |
|
|
ИСПОЛЬЗОВАНИЕ ПРАВИЛ СРАЖЕНИЯ ДЛЯ АТАКИ..................................................... |
574 |
|
Нанесение удара................................................................................................. |
574 |
|
Отклонение атаки............................................................................................... |
575 |
|
Обработка ущерба.............................................................................................. |
575 |
|
ЗАКЛИНАНИЯ В БИТВЕ............................................................................................... |
577 |
|
ИНТЕЛЛЕКТ В БИТВАХ ............................................................................................... |
579 |
ПОСТРОЕНИЕ ГЛАВНОГО СПИСКА ПЕРСОНАЖЕЙ..................................... |
579 |
|
|
MCLEDITOR ............................................................................................................. |
583 |
|
ИСПОЛЬЗОВАНИЕ ОПРЕДЕЛЕНИЙ ПЕРСОНАЖЕЙ......................................................... |
585 |
СОЗДАНИЕ КЛАССА КОНТРОЛЛЕРА ПЕРСОНАЖЕЙ................................... |
585 |
|
|
СЕТКИ И SCHARACTERMESHLIST............................................................................... |
585 |
|
ЗАЦИКЛИВАНИЕ АНИМАЦИИ И SCHARANIMATIONINFO............................................. |
585 |
|
ПЕРЕМЕЩЕНИЕ И SROUTEPOINT................................................................................ |
586 |
|
ОТСЛЕЖИВАНИЕ ПЕРСОНАЖЕЙ С SCHARACTER......................................................... |
586 |
|
КЛАСС SCHARACTERCONTROLLER ............................................................................ |
591 |
|
ИСПОЛЬЗОВАНИЕ SCHARACTERCONTROLLER............................................................ |
603 |
ДЕМОНСТРАЦИЯ ПЕРСОНАЖЕЙ В ПРОГРАММЕ CHARS........................... |
605 |
|
ЗАКАНЧИВАЕМ С ПЕРСОНАЖАМИ................................................................... |
606 |
|
ГЛАВА 13 РАБОТА С КАРТАМИ И УРОВНЯМИ................... |
609 |
|
РАЗМЕЩЕНИЕ ПЕРСОНАЖЕЙ НА КАРТЕ........................................................ |
609 |
|
|
СПИСОК ПЕРСОНАЖЕЙ КАРТЫ ................................................................................... |
609 |
|
Загрузка списка персонажей карты................................................................... |
610 |
|
Использование списка персонажей карты в вашей игре.................................. |
611 |
|
СКРИПТОВОЕ РАЗМЕЩЕНИЕ....................................................................................... |
612 |
ИСПОЛЬЗОВАНИЕ ТРИГГЕРОВ КАРТЫ............................................................ |
612 |
|
|
СФЕРИЧЕСКИЕ ТРИГГЕРЫ........................................................................................... |
613 |
|
КУБИЧЕСКИЙ ТРИГГЕР............................................................................................... |
613 |
|
ЦИЛИНДРИЧЕСКИЙ ТРИГГЕР ...................................................................................... |
614 |
|
ТРЕУГОЛЬНЫЙ ТРИГГЕР............................................................................................. |
614 |
|
СРАБАТЫВАНИЕ ТРИГГЕРОВ ...................................................................................... |
615 |
|
СОЗДАНИЕ КЛАССА ТРИГГЕРА.................................................................................... |
615 |
|
cTrigger::cTrigger и cTrigger::~cTrigger ............................................................. |
618 |
|
cTrigger::Load и cTrigger::Save .......................................................................... |
619 |
|
cTrigger::AddTrigger........................................................................................... |
621 |
|
cTrigger::AddSphere, cTrigger::AddBox, cTrigger::AddCylinder и |
|
|
cTrigger::AddTriangle.......................................................................................... |
622 |
|
cTrigger::Remove и cTrigger::Free...................................................................... |
624 |
|
cTrigger::GetTrigger............................................................................................ |
625 |
|
cTrigger::GetEnableState и cTrigger::Enable....................................................... |
628 |
|
cTrigger::GetNumTriggers и cTrigger::GetParentTrigger..................................... |
629 |
|
ИСПОЛЬЗОВАНИЕ ТРИГГЕРОВ .................................................................................... |
630 |
|
Определение файла триггеров........................................................................... |
630 |
14 |
netlib.narod.ru |
|

Джим Адамс |
|
Загрузка файла триггеров.................................................................................. |
630 |
Касание триггера............................................................................................... |
630 |
БЛОКИРОВАНИЕ ПУТИ БАРЬЕРАМИ ............................................................... |
631 |
CBARRIER::SETMESH И CBARRIER::SETANIM............................................................ |
634 |
CBARRIER::RENDER .................................................................................................. |
635 |
ДОБАВЛЕНИЕ БАРЬЕРОВ С CBARRIER ........................................................................ |
636 |
ИСПОЛЬЗОВАНИЕ КЛАССА БАРЬЕРА .......................................................................... |
637 |
Создание файла данных барьеров..................................................................... |
637 |
Загрузка данных барьеров................................................................................. |
637 |
Проверка столкновений с барьерами................................................................ |
638 |
Визуализация барьеров..................................................................................... |
638 |
ИСПОЛЬЗОВАНИЕ АВТОМАТИЧЕСКИХ КАРТ............................................... |
638 |
АВТОМАТИЧЕСКИЕ КАРТЫ В ДЕЙСТВИИ.................................................................... |
639 |
БОЛЬШИЕ КАРТЫ, МАЛЫЕ КАРТЫ.............................................................................. |
639 |
ЗАГРУЗКА И ОТОБРАЖЕНИЕ АВТОМАТИЧЕСКОЙ КАРТЫ............................................. |
644 |
СОЗДАНИЕ КЛАССА АВТОМАТИЧЕСКОЙ КАРТЫ......................................................... |
644 |
cAutomap::cAutomap и cAutomap::~cAutomap ................................................. |
646 |
cAutomap::Create и cAutoMap::Free.................................................................. |
646 |
cAutomap::Load и cAutomap::Save.................................................................... |
650 |
cAutomap::GetNumSections и cAutomap::EnableSection................................... |
651 |
cAutomap::SetWindow и cAutomap::Render ...................................................... |
652 |
ИСПОЛЬЗОВАНИЕ CAUTOMAP ................................................................................... |
654 |
ЗАКАНЧИВАЕМ С КАРТАМИ И УРОВНЯМИ................................................... |
655 |
ГЛАВА 14 СОЗДАНИЕ БОЕВЫХ |
|
ПОСЛЕДОВАТЕЛЬНОСТЕЙ................................ |
657 |
ПРОЕКТИРОВАНИЕ ВНЕШНИХ БОЕВЫХ ПОСЛЕДОВАТЕЛЬНОСТЕЙ .. 657 |
|
ТЕХНИЧЕСКАЯ СТОРОНА........................................................................................... |
659 |
РАЗРАБОТКА БОЕВЫХ ПОСЛЕДОВАТЕЛЬНОСТЕЙ..................................... |
661 |
ГЛОБАЛЬНЫЕ ДАННЫЕ.............................................................................................. |
663 |
CAPP::CAPP............................................................................................................... |
664 |
CAPP::INIT ................................................................................................................ |
664 |
CAPP::SHUTDOWN..................................................................................................... |
668 |
CAPP::FRAME............................................................................................................ |
668 |
CAPP::GETCHARACTERAT......................................................................................... |
673 |
ИСПОЛЬЗОВАНИЕ БОЕВЫХ АРАНЖИРОВОК................................................ |
675 |
ЗАКАНЧИВАЕМ С БОЕВЫМИ ПОСЛЕДОВАТЕЛЬНОСТЯМИ..................... |
676 |
ГЛАВА 15 СЕТЕВОЙ РЕЖИМ ДЛЯ |
|
МНОГОПОЛЬЗОВАТЕЛЬСКОЙ ИГРЫ................ |
679 |
БЕЗУМНАЯ МНОГОПОЛЬЗОВАТЕЛЬСКАЯ СЕЧА......................................... |
679 |
ПРОЕКТИРОВАНИЕ МНОГОПОЛЬЗОВАТЕЛЬСКОЙ ИГРЫ........................ |
680 |
ДЕМОНСТРАЦИОННАЯ ПРОГРАММА NETWORK GAME............................................... |
682 |
СОЗДАНИЕ АРХИТЕКТУРЫ МНОГОПОЛЬЗОВАТЕЛЬСКОЙ ИГРЫ......... |
684 |
РАБОТАЕМ ВМЕСТЕ: КЛИЕНТ И СЕРВЕР...................................................................... |
685 |
ВЗГЛЯД НА СЕРВЕР.................................................................................................... |
688 |
ВЗГЛЯД НА КЛИЕНТА................................................................................................. |
690 |
netlib.narod.ru |
15 |

Оглавление |
|
|
РАБОТА НАД ИГРОВЫМ СЕРВЕРОМ.................................................................. |
691 |
|
|
ХРАНЕНИЕ ИНФОРМАЦИИ ИГРОКА............................................................................. |
693 |
|
ОБРАБОТКА СООБЩЕНИЙ........................................................................................... |
694 |
|
От сообщений DirectPlay к игровым сообщениям............................................ |
696 |
|
Очередь сообщений ........................................................................................... |
700 |
|
Обработка игровых сообщений......................................................................... |
702 |
|
cApp::AddPlayer ............................................................................................ |
703 |
|
cApp::RemovePlayer ...................................................................................... |
705 |
|
cApp::PlayerInfo ............................................................................................ |
706 |
|
cApp::PlayerStateChange............................................................................... |
706 |
|
ОБНОВЛЕНИЕ ИГРОКОВ.............................................................................................. |
710 |
|
ОБНОВЛЕНИЕ СЕТЕВЫХ КЛИЕНТОВ............................................................................ |
712 |
|
ВЫЧИСЛЕНИЕ ЗАПАЗДЫВАНИЯ.................................................................................. |
712 |
|
САМОЕ ТРУДНОЕ ПОЗАДИ!......................................................................................... |
713 |
РАБОТА НАД ИГРОВЫМ КЛИЕНТОМ................................................................ |
713 |
|
|
ОБРАБОТКА ДАННЫХ ИГРОКА.................................................................................... |
714 |
|
СЕТЕВОЙ КОМПОНЕНТ............................................................................................... |
716 |
|
ОБРАБОТКА СООБЩЕНИЙ........................................................................................... |
719 |
|
cApp::CreatePlayer .............................................................................................. |
719 |
|
cApp::DestroyPlayer............................................................................................ |
720 |
|
cApp::ChangeState............................................................................................... |
721 |
|
ОБНОВЛЕНИЕ ЛОКАЛЬНОГО ИГРОКА.......................................................................... |
722 |
|
ОБНОВЛЕНИЕ ВСЕХ ИГРОКОВ..................................................................................... |
727 |
|
КЛИЕНТ ВО ВСЕМ БЛЕСКЕ.......................................................................................... |
728 |
ЗАКАНЧИВАЕМ С МНОГОПОЛЬЗОВАТЕЛЬСКИМИ ИГРАМИ................... |
729 |
|
ЧАСТЬ IV ЗАВЕРШАЮЩИЕ ШТРИХИ ......... |
731 |
|
ГЛАВА 16 ОБЪЕДИНЯЕМ ВСЕ ВМЕСТЕ В ЗАКОНЧЕННУЮ |
||
|
ИГРУ ..................................................................... |
733 |
ПРОЕКТИРОВАНИЕ ПРОСТОЙ ИГРЫ................................................................ |
733 |
|
|
НАПИСАНИЕ СЦЕНАРИЯ ИГРЫ ................................................................................... |
733 |
|
ЦЕЛЬ ИГРЫ THE TOWER............................................................................................. |
735 |
|
РАЗРАБОТКА УРОВНЕЙ............................................................................................... |
735 |
|
ОПРЕДЕЛЕНИЕ ПЕРСОНАЖЕЙ..................................................................................... |
739 |
|
РАСПРЕДЕЛЕНИЕ ПЕРСОНАЖЕЙ ................................................................................. |
742 |
|
СОЗДАНИЕ ПРЕДМЕТОВ И ЗАКЛИНАНИЙ..................................................................... |
742 |
|
РАЗРАБОТКА СКРИПТОВ............................................................................................. |
745 |
|
ОПРЕДЕЛЕНИЕ УПРАВЛЕНИЯ ..................................................................................... |
748 |
|
ПЛАНИРОВАНИЕ ХОДА ИГРЫ ..................................................................................... |
749 |
ПРОГРАММИРОВАНИЕ ПРИМЕРА ИГРЫ......................................................... |
751 |
|
|
СТРУКТУРИРОВАНИЕ ПРИЛОЖЕНИЯ........................................................................... |
753 |
|
Конструктор cApp.............................................................................................. |
755 |
|
Функция приложения Init .................................................................................. |
755 |
|
Функция Shutdown............................................................................................. |
758 |
|
Обработка кадров в функции Frame.................................................................. |
758 |
|
ИСПОЛЬЗОВАНИЕ ОБРАБОТКИ НА ОСНОВЕ СОСТОЯНИЙ............................................. |
759 |
16 |
netlib.narod.ru |
|

|
Джим Адамс |
РАБОТА С КАРТАМИ .................................................................................................. |
765 |
ИСПОЛЬЗОВАНИЕ БАРЬЕРОВ И ТРИГГЕРОВ................................................................. |
768 |
УПРАВЛЕНИЕ ПЕРСОНАЖАМИ................................................................................... |
768 |
ПОДДЕРЖКА ТОРГОВЛИ ............................................................................................ |
774 |
ВОСПРОИЗВЕДЕНИЕ ЗВУКОВ И МУЗЫКИ.................................................................... |
775 |
ВИЗУАЛИЗАЦИЯ СЦЕНЫ ............................................................................................ |
777 |
ОБРАБОТКА СКРИПТОВ ............................................................................................. |
778 |
СОБИРАЕМ ЧАСТИ..................................................................................................... |
781 |
ЗАВЕРШАЕМ СОЗДАНИЕ ИГРЫ.......................................................................... |
781 |
ЧАСТЬ V ПРИЛОЖЕНИЯ................................ |
783 |
ПРИЛОЖЕНИЕ A. СПИСОК ЛИТЕРАТУРЫ ......................... |
785 |
РЕКОМЕНДОВАННОЕ ЧТЕНИЕ........................................................................... |
785 |
ПОЛУЧЕНИЕ ПОМОЩИ В WEB........................................................................... |
788 |
ПРИЛОЖЕНИЕ B. СОДЕРЖИМОЕ CD-ROM......................... |
791 |
DIRECTX 9.0 SDK...................................................................................................... |
792 |
ПРОБНАЯ ВЕРСИЯ GOLDWAVE 5 ....................................................................... |
792 |
ПРОБНАЯ ВЕРСИЯ PAINT SHOP PRO 8.............................................................. |
793 |
GAMESPACE LIGHT................................................................................................. |
793 |
ПРИЛОЖЕНИЕ C. СЛОВАРЬ ТЕРМИНОВ............................ |
795 |
АЛФАВИТНЫЙ УКАЗАТЕЛЬ................................................. |
811 |
netlib.narod.ru |
17 |