![]() |
||
Как создать игру ? - Программируем сами. Рассмотрение программирования игр под DirectX 9c на C++ с использованием среды разработки MSVS 2005 или выше. |
||
[содержание] [назад] [страница 1] [далее] | ||
Vertices - Вершины - страница 1 | ||
Итогом вставки новой созданной иконки должно стать для Вас сохранение изменений в проект (кнопка Save All на панели инструментов MSVS) и выполнением сборки проекта - по клавише [F7]. Еще раз напомню, что для сборки отладочной версии Debug нужно выбрать соответствующую конфигурацию проекта - в панели инструментов есть соответствующий выпадающий список. Release - конфигурация отличается отсутствием отладочной информации, поэтому отлаживать приложение в таком режиме сборки нельзя. Зато когда Вы отловите все ошибки в коде, тогда можно создать окончательный релиз. |
||
Если Вы уже вдоволь наигрались с проектом CreateDevice - сохраняем все внесенные изменения и закрываем проект File > Close Solution. Переходим к примерам Vertices, Matrices, Lights, Textures, Meshes |
||
Все настойки в этих проектах нужно делать абсолютно аналогично, как это описывалось на протяжении наших предыдущих уроков, а более конкретно в уроке - Самый первый шаг - страница 3 | ||
В примере Vertices рассматривается как работать с вершинами в 3d-пространстве. Теперь уже наше приложение будет выполнять более полезную работу - выведет на экран разноцветный треугольник. |
||
![]() |
||
По сравнению с предыдущим примером CreateDevice здесь уже рассматривается как создается и инициализируется вершинный буфер для модели треугольника. Треугольник хоть и плоский, но это уже модель, в примере Matrices показано как создать его вращение вокруг своей оси (по оси Y). | ||
Функция wWinMain включает использование новой функции - //
Create the vertex buffer //... } другое важное отличие - видоизменен цикл обработки сообщений, теперь он выглядит как //
Enter the message loop Т. е. если сообщения поступают в приложение, они обрабатываются, если нет - выполняется функция Render - другими словами отрисовка выполняется во время нахождения приложения в состоянии бездействия Idle - это и есть то состояние, когда нет системных сообщений, адресованных Вашему приложению. |
||
Функция InitVB HRESULT
InitVB() //заметьте, что цвет каждой вершины в формате AARRGGBB задается именно здесь! //о
формате задания цвета и определении конкретного цвета мы говорили в уроке
- CreateDevice страница 2
// Создаем вершинный буфер. Здесь мы выделяем достаточно
памяти для вершин
// Теперь мы заполняем вершинный буфер. Для этого
вызываем Lock() для VB
return S_OK; |
||
Функция Cleanup теперь включает освобождение объекта вершинного буфера. Функция Render включает новый код для рисования модели треугольника - //
начало сцены //
шагов. Мы передаем вершины в поток, поэтому первое - это определение
// Полнофункциональные, настраиваемые вершинные шейдеры - это //
выполняет фактическое рисование
// конец сцены |
||
Функция MsgProc не включает обработки сообщения WM_PAINT, потому что все d3d-приложения должны выполнять отрисовку находясь в состоянии Idle. | ||
Обратите внимание также на начало модуля Vertices.cpp //----------------------------------------------------------------------------- //
структура определяющая собственный тип вершин // наш настраиваемый тип вершин FVF, который определяет какой тип вершин
// используется для их описания |
||
Чтобы проверить насколько Вам ясно как работать с вершинами - попробуйте вывести вместо треугольника - квадрат. Цвета вершин также измените. | ||
![]() |
||
Сначала посмотрите на приведенный рисунок и определите как были описаны координаты для треугольника: 150.0f, 50.0f - это вершина, отмеченная на рисунке цифрой 1, 250.0f, 250.0f - вершина номер 2 и 50.0f, 250.0f - вершина номер 3. Заметьте, что вершины определены в порядке обхода по-часовой стрелке. Это правило для определения видимых граней модели. Если вершины оказываются повернуты к экрану той гранью, где они следуют против часовой стрелки, то такая грань считается невидимой для зрителя стороной и не отрисовывается ! |
||
Теперь можно легко определить вершины для нашего квадрата - CUSTOMVERTEX
vertices[] = { 250.0f, 50.0f, 0.5f, 1.0f, 0xff00ff00, }, { 250.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, }, {
50.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, }, |
||
Однако даже правильно изменив количество вершин с 3 на 4 и правильно указав это число в строке кода if(
FAILED( g_pd3dDevice->CreateVertexBuffer( 4 * sizeof( CUSTOMVERTEX
), И указав количество отрисовываемых примитивов в функции Render в строке - g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 2 ); в количестве 2 вместо 1 |
||
Результатом будет - | ||
![]() |
||
А всё дело в том, что D3D-приспособлен понимать только треугольные грани - состоящие из треугольников. Это сделано из-за того, что три вершины образующие треугольную грань всегда находятся в одной плоскости и следовательно так проще обсчитывать прорисовку сложных моделей. | ||
Значит нам, для создания модели квадрата, состоящего из 2х треугольных граней нужно использовать не 4, а 6 вершин - | ||
CUSTOMVERTEX
vertices[] = { 250.0f, 50.0f, 0.5f, 1.0f, 0xff00ff00, }, { 250.0f, 250.0f, 0.5f, 1.0f, 0xff0000ff, }, { 250.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, }, { 50.0f, 250.0f, 0.5f, 1.0f, 0xffffff00, }, { 50.0f, 50.0f, 0.5f, 1.0f, 0xff0000ff, },
|
||
![]() |
||
Важен и порядок, в котором определена вторая тройка вершин. Если они будут определены в другом порядке, то вторая грань (второй треугольник) выведен не будет. Попробуйте изменить порядок второй тройки вершин и убедитесь в этом сами. | ||
На рисунке также отчетливо видно какая из вершин в какой цвет окрашена, так что будет более понятно где и какая вершина. На первых порах задайте для каждой из вершин свой цвет - тогда легче будет увидеть где нужная вершина. | ||
[содержание] [назад] [страница 3] [далее] | ||
журнал комиксов - приложение к журналу комиксов megainformatic.ru #1 январь 2025 - выпуск 1, журнал комиксов #4 апрель 2025, 18+ дополнение #3 к журналу март 2025, 18+ дополнение #2 к журналу февраль 2025
|
||||||||||
игра, журналы комиксов - номера за 2025 год - январь 2025 - март 2025
|
||||||||||
игры, сервисы
|
||||||||||
видео-рассказ, уроки godot, виртуальный помощник по поиску информации
|
||||||||||
игры Многоликий: dress - hordes эпизоды с 1 по 4
|
||||||||||
игры, музыкальные клипы
|
||||||||||
музыкальный клип, игры
|
||||||||||
разработка игр, анимационный фильм, новогодняя дискотека 2020 - песни на итальянском, игра про лифт
|
||||||||||
игры, инструменты разработки, анимационный фильм, фильм.
|
||||||||||
игры
|
||||||||||
игры в браузере
|
||||||||||
игры в браузере
|
||||||||||
игры в браузере
|
||||||||||
игры в браузере
|
||||||||||
игры в браузере (3), создание музыки в браузере (1)
|
||||||||||
игры в браузере
|
||||||||||
игры в браузере
|
||||||||||
игры в браузере
|
||||||||||
игры в браузере (3), скачиваемые (1)
|
||||||||||
игры в браузере
|
||||||||||
игры в браузере, скачиваемые игры
|
||||||||||
игры в браузере
|
||||||||||
игры в браузере
|
||||||||||
полезный софт, игры в браузере
|
||||||||||
сервисы, игры
|
||||||||||
игры, программы
|
||||||||||
поздравления, уроки рисования, уроки создания сайтов
|
||||||||||
комиксы, музыка, рассказы
|
||||||||||
игра для разработки, калькулятор услуг, cms, комикс
|
||||||||||
игры для разработки, комиксы
|
||||||||||
игры шарики и ямки, комиксы про Костю Коробкина, ria xxl игра, fly snow 3d генератор эффектов снега, частиц и др. -
|
||||||||||
Создай свою игру на fle game engine -
|
||||||||||
Для создания сайта - модуль отзывов/комментариев для вашего сайта в составе megainformatic cms express files -
|
||||||||||
Уроки Flash, бесплатные Flash - игры.
|
||||||||||
Поддержка сайтом нескольких языков (multi lang), создание собственной системы личных кабинетов, соц. сети или фриланс - биржи (megainformatic cms social), создание сервиса коллективных покупок на базе megainformatic cms groupon, онлайн сервис подсчёта статистики ключевых слов в статьях вашего сайта keywords gen + описание кода данного сервиса, с возможностью бесплатно реализовать его аналог на своём собственном сайте.
megainformatic.ru/webjob/ - сервис для фриланс проектов - место встречи заказчиков и исполнителей |
||||||||||
Социальная сеть megainformatic.ru/webjob/
megainformatic.ru/webjob/ - сервис для фриланс проектов - место встречи заказчиков и исполнителей |
||||||||||
Системы управления сайтом, уроки
megainformatic cms admin - простая и компактная система для работы и управления сайтом |
||||||||||
|
||||||||||
|
||||||||||
megainformatic cms free и серия продуктов - Уроки Photoshop
Данная серия посвящена описанию приемов и методов создания изображений, с помощью инструментария программы Adobe Photoshop. Кроме того, многие описанные средства могут вам помочь при освоении и многих других программ для работы с растровой графикой - GIMP, Corel Photo Paint и других.
|
||||||||||
бесплатные игры 2d и 3d, а также эмулятор Ну, Погоди!
Это серия распространяемых бесплатно игр. Вы не только можете поиграть, но и скачать исходники, получив тем самым возможность внести изменения в игру или создать новую !!! (эмулятор Ну, Погоди! распространяется платно). |
||||||||||
серия игр про Веселого Буквоежку, и бесплатно распространяемая игра Нечто: Необъяснимое - в плену желаний
Здесь представлены новинки жанра - Говорящий Комикс, Настольная игра, А также продукт, который позволит Вам научиться создавать игры самостоятельно. Ну и конечно изюминка в своём роде - бесплатная игра - Нечто: Необъяснимое - в плену желаний |
||||||||||
Серия бесплатных онлайн уроков, посвященных 3ds max, photoshop, c++, directx, delphi и php.
Описаны практические примеры решения различных задач, возникающих при создании игр и сайтов. Продукты Набор разработчика и Ваше Визуальное Шоу распространяются платно. |
||||||||||
уроки и продукты различной тематики
Бесплатные Уроки Photoshop free, Бесплатные Уроки по программированию на delphi directx - Как создать игру Ну, Погоди!, Бесплатная Авторская музыка в формате mp3 - Музыкальные Миры, Платно распространяемый продукт megainformatic cms express - система для быстрого создания Вашего сайта на php + my sql. |
||||||||||
Проекты игр, уроки
Игра Веселый Буквоежка, уроки delphi directx 8.1 для начинающих (описываются основы 3d игр), моделируем девушку в 3d studio max, уроки музыки - пишем музыку в Fruity Loops Studio |
||||||||||
|