Работа с пакетом D3DFrame
Программирование шаблонаОкно программы D3DFrame_UnitTemplate
Класс CUnitDefense
Члены данных класса CUnitDefense
Коэффициенты защиты
Очки повреждений
Скорость восстановления
Тип защиты
Название защиты
Методы класса CUnitDefense
Класс CUnitOffense
Члены данных класса CUnitOffense
Коэффициенты поражения
Радиус взрыва
Скорострельность
Скорость снаряда
Дальнобойность
Тип атаки
Название типа атаки
Методы класса CUnitOffense
Класс CUnitMovement
Члены данных класса CUnitMovement
Скорость передвижения
Способ передвижения
Ускорение и торможение
Скорость поворота
Два подразделения с разной скоростью поворота
Методы класса CUnitMovement
Класс CUnitAnimation
Члены данных класса CUnitAnimation
Анимация ожидания
Кадры анимации ожидания для танка
Анимация передвижения
Кадры анимации передвижения танка
Анимация атаки
Кадры анимации танковой атаки
Анимация гибели
Кадры гибели танка
Начальный кадр анимации
Полная анимационная последовательность для танка
Данные текстуры
Методы класса CUnitAnimation
Функция CUnitAnimation vSetRenderDevice()
Функция CUnitAnimation vLoadTextures()
Цвета владельца
Кадры с цветами владельца для вертолета Apache
Анимационная последовательность
Функция CUnitAnimation vReset()
Класс CTexture
Члены данных класса CTexture
Методы класса CTexture
Функция CTexture vLoad()
Функция CTexture vRelease()
Функция CTexture vSetRenderDevice()
Класс CUnit
Структура объекта подразделения
Члены данных класса CUnit
Взаимосвязь между переменными состояния и базовыми типами
Методы класса CUnit
Функция CUnit vReset()
Функция CUnit vSetBaseValues()
Функция CUnit vSetPosition()
Класс CUnitManager
Загрузка базовых типов
Базовые типы в классе диспетчера подразделений
Функция CUnitManager iLoadBaseTypes()
Импорт данных из пяти различных
Данные защиты в электронной таблице Excel
Данные атаки хранящиеся в электронной таблице Excel
Функция CUnitManager ptrGetDefenseType()
Создание подразделений
Функция CUnitManager iAddUnit()
Взаимосвязь между статическими
Управление текстурами
Рисование подразделений
Два квадрата с различными базовыми точками
Два текстурированных квадрата с различными базовыми точками
Координаты вершин квадрата с базовой точкой в центре
Функция vDrawUnit()
Функция vRender()
Использование альфаканала
Отображение активных подразделений
Ход выполнения функции визуализации
Обновление кадра анимации
Обработка ожидающих подразделений
Обработка поворачивающих подразделений
Обработка атакующих подразделений
Обработка гибнущих подразделений
Обработка перемещающихся подразделений
Загрузка и создание подразделений
Итоги
Обзор DirectInput
Объекты DirectInput
Интерфейс IDirectInput8
Интерфейс IDirectInputDevice8
Ввод с клавиатуры
Проект DInput_Simple
Окно программы DInput_Simple
Инициализация DirectInput
Функция iInitDirectInput()
Функция iInitKeyboard()
Буферизованный ввод с клавиатуры
Непосредственное чтение данных клавиатуры
Функция IDirectInputDevice8 SetProperty()
Установка формата данных клавиатуры
Установка уровня кооперации
Захват клавиатуры
Раскладка клавиатуры
Чтение данных клавиатуры
Ввод текста в игре
Пример ввода текста в игре
Навигация по меню
Структура функции проверки ввода
Активация ввода текста
Обработка текстового ввода
Блоксхема ввода данных с клавиатуры
Отображение введенного текста
Ход выполнения процедуры отображения текста
Интерфейс шрифта
Функция ID3DXFont DrawText()
Основы редактирования карт
Редактор уровней игры Warcraft III
Компоненты редактора карт
Область редактирования
Редактор уровней Warcraft III с включенной сеткой
Область выбора блоков
Миникарта
Область вывода информации
Просмотр карты
Окно программы просмотра карты
Глобальные переменные карты
Глобальные переменные для просмотра карты
Ход выполнения программы
Ход выполнения программы просмотра карт
Генерация случайной карты
Навигация по карте
Ход выполнения функции проверки входных данных
Загрузка изображений блоков
Визуализация блоков
Редактирование карты
Окно программы D3D_MapEditorLite
Программирование панели инструментов
Работа с пакетом D3DFrame
Отображение блоков на панели инструментовСтруктура панели инструментов
Сохранение и загрузка карты
Окно программы D3D_MapEditorPlus
Функция SaveMap()
Функция LoadMap()
Отображение миникарты
Окно программы D3D_MapEditorPlusGold
Ход исполнения программы D3D_MapEditorPlusGold
Функция vCreateMinimap()
Функция vRenderMinimap()
Алгоритмы генерации карт
Окно программы D3D_MapEditorGeneration
Функция vGenerateMap()
Ход выполнения функции vGenerateMap()
Методы генерации карт
Использование шаблонов для генерации случайного ландшафта
Многослойные карты
Окно программы D3D_MapEditorLayers
Изменения в заголовочном файле
Многомерный массив
Функция смены слоя
Переменные для новых кнопок
Изменения в функции vCreateToolbar()
Функция vChangeLayer()
Изменение процедур сохранения и загрузки
Изменения в функции vRender()
Изменения в функции vCheckMouse()
Задача поиска пути
Простое решение
Работа простого алгоритма поиска пути
Общее решение проблемы поиска пути
Более сложный путь
Поиск пути по алгоритму A*
Окно программы D3D_PathFinding
Основы A*
Терминология в алгоритме A*
Добавление узлов в открытый список
Начало поиска
Вычисление стоимости узлов
Базовая стоимость узла
Стоимость относительно начального узла
Стоимость относительно цели
Общая стоимость
Стоимость узлов из открытого списка
Составляющие стоимости узла
Поиск наилучшего узла
Продолжение поиска
Обратная трассировка для нахождения пути
Найденный путь
Реализация в коде
Функция инициализации пути
Ход выполнения кода поиска пути в main cpp
Функция CPathFinder bFindPath()
Ход выполнения функции bFindPath()
Итоги и оптимизация
Основные сведения о частицах
Характеристики частиц
Изображение частиц
Движение частиц
Примеры движения частиц
Анимация частиц
Изменение частиц с течением времени
Структура класса частиц
Класс CVector
Класс CParticle
Члены данных
Методы класса
Функция CParticle vUpdate()
Реализация системы частиц
Окно программы D3D_Particles
Структура проекта D3D_Particles
Ход выполнения программы D3D_Particles
Инициализация частиц
Визуализация частиц
Приложение B Ресурсы для разработчика
Содержание раздела