Программирование стратегических игр с DirectX 9.0

         

Программирование стратегических игр с DirectX 9.0

Условно бесплатные программы
Сайты аукционов
Издатели
Итоги
Основы блочной графики

Что такое блок?
Мозаика из блоков на экране
Пример ландшафтных блоков
Зачем использовать блоки?
Использование блоков для экономии памяти


Пример карты для размещения блоков
Применение блоков для повторного использования графики
Простая игровая карта
Простая игровая карта состоящая из блоков
Использование блоков для динамического содержимого

Как создавать блоки?
Выбор размера блоков
Интерфейс с видимым фрагментом 16 x 16 блоков
Определение необходимых блоков
Несколько блоков из набора
Как отображать блоки?
Отображение двухмерной сетки
Двухмерная сетка для размещения блоков
Порядок двухмерных блоков
Как вычислить местоположение в массиве

Как вычислить видимую позицию
Отображение изометрических блоков
Базовая карта изометрических блоков
Порядок отображения изометрических блоков
Отображение трехмерных блоков
Пример карты из трехмерных блоков
Многослойные блоки
Добавление деталей к блокам
Три блочных карты с различным уровнем детализации
Блок с изображением травы с камнями на ней

Три блока трава песок и камни
Переходные блоки
Блочная карта из травы и песка
Блочная карта с плавными переходами от травы к песку
Блоки для переходов в направлении с юга на север
Блоки для переходов в направлении с востока на запад
Переходные блоки для углов
Совместное использование угловых блоков с другими переходными блоками
Ошибки возникающие при использовании четырех угловых блоков
Перевернутые угловые блоки в действии

Блоки с изображениями дорог
Новый блок с изображением дороги помешается рядом с существующими дорогами
Исследуем блоки расположенные вокруг нового
Соседние блоки с присвоенными номерами
Как добавить трехмерные деревья
Пальмовая роща со зданием в центре
Разоблачение поддельных трехмерных деревьев
Анимированные блоки
Редактирование и хранение блоков
Хранение блоков в двухмерном массиве

Блочная карта из 100 элементов
Карта с составленной из блоков буквой О
Хранение многослойных блоков
Блочная карта с двумя слоями
Создание класса для представления блоков
Заголовок класса
Реализация класса
Пример использования класса
Свойства блоков
Проходимость

Использование свойства проходимости при поиске пути
Возвышенность
Яркость
Использование яркости блока для эффекта тумана войны
Смещение
Блоки разных размеров визуализированные без смещения
Отображение блоков
Отображение двухмерных блоков
Окно программы демонстрирующей визуализацию двухмерных блоков
Архитектура проекта D3DFrame_2DTiles

Структура файлов программы демонстрирующей двухмерную блочную графику
Заголовочный файл Main h
Файл программы Main cpp
Поток выполнения программы отображающей двухмерные блоки
Отображение двухмерных изометрических блоков
Окно программы демонстрирующей визуализацию двухмерных изометрических блоков
Архитектура проекта D3DFrame_Isometric2DTiles
Заголовочный файл Main h
Файл программы Main cpp
Отображение двухмерных изометрических блоков со спрайтами

Окно программы демонстрирующей
Архитектура проекта D3DFrame_Isometric2DSpriteTiles
Заголовочный файл Main h
Файл программы Main cpp
Зачем использовать спрайты?
Отображение трехмерных блоков
Окно программы демонстрирующей визуализацию трехмерных блоков
Архитектура проекта D3DFrame_3DTiles
Заголовочный файл Main h
Файл программы Main cpp

Загрузка трехмерных моделей
Точечный источник света
Визуализация трехмерных моделей
Итоги
Определение требований к интерфейсу
Активные зоны и графика
Детализация схемы интерфейса
Взаимосвязь шаблонов интерфейса
Стартовый экран игры Battle Armor
Схема кадра стартового экрана игры Battle Armor

Звуковое оформление интерфейса
Схема кадра с основным меню
Состояния интерфейса
Схема кадра меню режима "схватка"
Схема кадра меню многопользовательской схватки
Схема кадра с меню игрового сервера
Раскадровка интерфейса
Раскадровка интерфейса игры Battle Armor
Удобство и простота интерфейса
Щелчки мышью и взаимодействие с интерфейсом

Сложность навигации по меню
Согласованность интерфейса
Двухмерная графика в Direct3D
Окно программы TitleScreen
Архитектура проекта D3D_TitleScreen
Заголовочный файл Main h
Ключевые типы данных Direct3D
Структура данных настраиваемого формата вершин (FVF)
Данные местоположения
Треугольник образованный тремя точками в трехмерном пространстве

Данные нормали
Нормаль треугольной грани
Данные текстуры
Координаты текстуры указываются относительно ее размера
Определение формата вершины
Прототипы функций
Файл программы Main cpp
Функция WinMain()
Структура вызовов других функций в функции WinMain()
Вычисление смещения клиентской области

Окно размером 640 x 480
Измененное окно размером 640 x 504
Функция InitD3D()
Ход выполнения функции InitD3D()
Создание объекта Direct3D
Настройка параметров отображения
Двойная буферизация в действии
Сглаживание
Создание устройства трехмерной визуализации
Настройка среды визуализации

Функция vInitInterfaceObjects()
Полоса треугольников используемая для двухмерной визуализации
Создание буфера вершин
Блокировка буфера вершин
Заполнение буфера вершин данными
Содержание раздела