ria pc game
fle game engine - движок для создания игр
fle game engine - движок для создания игр


Balls and holes PC game / Balls and Holes PC игра
Вакансии
Игродельня
Сегодня
22 августа 2019 21:12
Вход Регистрация Забыли пароль ?

megainformatic - Реферальная ссылка
Ваша реферальная ссылка Реферальная ссылка позволяет учитывать, что пользователь был приведен на сайт лично вами. Реферальная ссылка может выглядеть как угодно, главное чтобы в ней присутствовал параметр rid= примеры - http://megainformatic.ru/?rid=5 http://megainformatic.ru/after_buy.php?pid=46&rid=5 Если пользователь, приведенный по ваше
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
megainformatic - Как создать игру ? - Пишем игровой движок с нуля - Общая структура будущего игрового движка

Разное

megainformatic - Как создать игру ? - Пишем игровой движок с нуля - DXUTMainLoop - цикл работы DirectX-приложения

megainformatic - Варианты макетов Психолог 911

megainformatic - Шаблоны для сайтов - что это и какие они бывают ?

megainformatic - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - Глава 3 - Кто он ? (who is ?)

megainformatic - Мои Музыкальные Миры - готовая музыка mp3 - новинки 2013 года

megainformatic - Теория и практика хакерских атак - самозащита от нападения

megainformatic - Теория и практика хакерских атак - самозащита от нападения - Способы подмены реального IP

megainformatic - Fruity Loops Studio 9 - Как синтезировать свои сэмплы - изучаем возможности плагина Sytrus

megainformatic - Видоизменяем тему для Wordpress под свои нужды

megainformatic - Flash приложения и игры - Шаг 3 - управляемый шарик

megainformatic - Учимся создавать флеш-игры, что нужно знать для того, чтобы заняться созданием flash приложений и игр ?

megainformatic - Шаг 4 в освоении Flash-технологий - как анимировать персонажа и управлять им

megainformatic - Форма для смены шаблонов сайта. Модуль template selector

megainformatic - megainformatic cms express files + module slider

megainformatic - Создание сайта бесплатно или под заказ

megainformatic - Как создать flash баннер

megainformatic - Разработка flash-приложения для сайта: онлайн примерочная

megainformatic - Мои впечатления о книге - Владислав Крапивин - Журавленок и Молнии

megainformatic - Модуль отзывов/комментариев для вашего сайта

megainformatic - Модуль отзывов/комментариев для вашего сайта

megainformatic - Модуль отзывов/комментариев для вашего сайта

megainformatic - Модуль короткие ссылки short link

megainformatic - Работа с сокетами fsocket из php

megainformatic - Как создать игру Создание игровых панелей и индикаторов

megainformatic - Приключения Кости Коробкина - Как я провел лето - интерактивный комикс

megainformatic - Приключения Кости Коробкина - Как я провел лето - интерактивный комикс

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс

megainformatic - Система управления сайтом на php - megainformatic cms admin files

megainformatic - обзор антивирусных средств защиты

megainformatic - как работает антивирус ?

megainformatic - Создание сайта для бизнеса

megainformatic - Новый взгляд на очевидные вещи

megainformatic - Разработка программ на c++

megainformatic - Немного о музыке

megainformatic - GET и POST запросы

megainformatic - для чего нужна карта сайта

megainformatic - Web Администрирование

megainformatic - Мысли о разном

megainformatic - Легко ли быть программистом

megainformatic - Глубины программирования на C++

megainformatic - Убираем лимит на размер импортируемого файла в PhpMyAdmin

megainformatic - Как создать torrent файл

megainformatic - Нужна ли валидация вашему сайту ?

megainformatic - Антивирус DrWeb

megainformatic - Калькулятор рассчёта стоимости зубопротезирования для стоматологической клиники

megainformatic - Что такое BitTorrent (БитТоррент)

megainformatic - Миссис Даутфайр 1993 фильм torrent

megainformatic - Как скачивать торрент-раздачу ?

megainformatic - Автотелега фильтр

megainformatic - Фильмы

megainformatic - Fahrengeit Фаренгейт игра 2006 для PC

megainformatic - Fez игра для PC 2013

megainformatic - Дневник памяти - фильм 2004

megainformatic - Scooter - The night - Video and Lyrics - Скутер - Ночь - Видео и лирика

     
  [статьи] [как создать игру ну, погоди!] [к содержанию]  
     
 
Основы Вращений и Управления камерой
 

Предисловие

Данный цикл статей призван помочь тем, кто решил заняться освоением DirectX. Примеры даны применительно к Delphi 6-7. В данной статье рассматривается пример 3D-приложения содержащий замкнутое пространство, движущуюся модель субмарины и возможность управления обзором из камеры.

Особенности примера: используется чистое WinAPI-приложение (без использования VCL). К исходному коду прилагаются все необходимые файлы - *.pas и *.dll необходимые для полноценной работы с DirectX8.1 на Delphi 6-7.
 
Примечание: для лучшего понимания данного примера Вам нужно познакомиться с понятием кватерниона.
 
Некоторые теоретические сведения о векторной математике смотри здесь.
 

Камера

Камера описана следующим образом:

TD3DCamera = class(TObject)
private
FPosX, FPosY, FPosZ: Single; // положение камеры
FOrient: TD3DXQuaternion; // ориентация
FAxisAngles: TD3DXVector3; // углы вращений по основным осям


...
public
constructor Create;
end;

пример приложения submarine (DirectX на Delphi)

исходный код примера (29 Кб)

Скачиваний : 0

общий код - необходим для компиляции и исполнения данного примера и других DirectX-приложений (которые Вы еще напишете) под Delphi 6-7.

Скачиваний : 20

медиа-файлы (676 Кб)

Скачиваний : 0
 

Управление камерой

Управление камерой осуществляется от клавиатуры. Для опроса состояния клавиатуры используется интерфейс DirectInput8 и утилита из модуля DX8_DIUtil8 (см. исходный код примера).

Скачиваний : 0
Клавиши управления - стрелки - перемещение камеры в пространстве; [Del]/[Page Dn] - вращение вокруг оси Y; [Home]/[End] - вращение вокруг оси X; [Ins]/[Page Up] - вращение вокруг оси Z.

 

Реализация опроса клавиатуры находится в методе GameActions; Этот метод периодически вызывается в методе FrameMove.

 

Сам процесс перемещения и поворота камеры реализован в ряде методов:

procedure CameraMoveLR(Direction: Integer);
procedure CameraMoveFB(Direction: Integer);
procedure CameraRotate(Direction: Integer; Axis: TRotationAxis);

 

Вращение реализовано следующим образом:

procedure CSubmarineD3DApp.CameraRotate(Direction: Integer; Axis: TRotationAxis);
var
CurrentRotation: Single;


begin

// определяем текущую ориентацию - углы вращений по осям

case Axis of
raX: CurrentRotation := D3DCam.FAxisAngles.x;

raY: CurrentRotation := D3DCam.FAxisAngles.y;
raZ: CurrentRotation := D3DCam.FAxisAngles.z;
else
CurrentRotation := 0;
end;

// ограничиваем вращение диапазоном -90..90 градусов (-pi/2..pi/2 радиан)

if (Direction = 1) and (CurrentRotation < D3DX_PI*0.499) then
CurrentRotation := CurrentRotation + Direction*CameraRotationSpeed;
if (Direction = -1) and (CurrentRotation > -D3DX_PI*0.499 ) then
CurrentRotation := CurrentRotation + Direction*CameraRotationSpeed;

// запоминаем новый угол

case Axis of
raX: begin
D3DCam.FAxisAngles.x := CurrentRotation;
end;
raY: begin
D3DCam.FAxisAngles.y := CurrentRotation;
end;
raZ: begin
D3DCam.FAxisAngles.z := CurrentRotation;
end;
end;

// формируем кватернион вращения - из 3 вращений: рысканье (yaw), тангаж (pitch), крен (roll)

D3DXQuaternionRotationYawPitchRoll(D3DCam.FOrient, D3DCam.FAxisAngles.y,
D3DCam.FAxisAngles.x, D3DCam.FAxisAngles.z);

// временная переменная для вывода значений на экран (с целью отладки)
D3DCam.FTempOrient := D3DCam.FOrient;
end;

 

В методе FrameMove следующие строчки кода преобразуют кватернион ориентации камеры (D3DCam.FOrient) в матрицу вращения, положение камеры задается матрицей смещения (matTrans) по текущим координатам камеры.

D3DXMatrixRotationQuaternion(matCursor, D3DCam.FOrient);

D3DXMatrixIdentity(m_matView);
D3DXMatrixMultiply(m_matView, m_matView, matCursor);

D3DXMatrixTranslation(matTrans, D3DCam.FPosX, D3DCam.FPosY,
D3DCam.FPosZ);

D3DXMatrixMultiply(m_matView, m_matView, matTrans);

 
Важные замечания - смотри здесь.
 
исходный код примера и общий код можно скачать здесь:
Скачиваний : 0
(29 Кб)
Скачиваний : 20
(585 Kb)
     
необходимые медиа-файлы:
Скачиваний : 0
(676 Кб)
 
 
     
     
     
     
     
     
  [статьи] [как создать игру ну, погоди!] [к содержанию]  
     
megainformatic live chat
Начать беседу
X
 

Оставленные комментарии



fle game engine - движок для создания игр
fle game engine - движок для создания игр


Something: Unexplained 2 captive of desires / Нечто: Необъяснимое 2 в плену желаний
Костя Коробкин Комикс Коллекционное издание - 6 комиксов, 81 страница, 220 mp3 треков
megainformatic Размещение баннерной рекламы у нас
Время загрузки: 0,0915