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


Balls and holes PC game / Balls and Holes PC игра
Вакансии
Игродельня
Сегодня
19 ноября 2017
5:59
Вход Регистрация Забыли пароль ?

megainformatic - Теория и практика хакерских атак - самозащита от нападения - Способы подмены реального IP
Теория и практика хакерских атак - самозащита от нападения - Способы подмены реального IP Эта тема, которую мы будем рассматривать достаточно опасна, и может привести вас на плохой путь. Поэтому будьте осторожны ! Рекомендую Вам применять полученную информацию только сугубо в целях защиты и самозащиты ваших информационных пространств - компьютера, сайта
подробнее...

Теги

создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт

Статьи сайта

megainformatic - Сайты живущие вне поисковых систем. Есть ли такие и как их найти ?

megainformatic - Game craft - проект разработки игровых и мультимедийных проектов

megainformatic - Game craft - моделируем scv

megainformatic - Game craft - моделируем scv - шаг 1 (часть 2)

megainformatic - Game craft - моделируем scv - шаг 2 (часть 3)

megainformatic - Game craft - Наложение текстуры на модель робота scv (часть 4)

megainformatic - Game craft - Прорисовка текстуры робота SCV шаг 5

megainformatic - Game craft - Экспорт модели из 3ds max в формат X

megainformatic - Game craft - отображение scv модели в формате x в d3d9-приложении

megainformatic - Game craft - управление игрой от Direct Input в d3d9 - приложении

megainformatic - Game craft - игровая камера в d3d9 - приложении

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

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

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

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

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

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

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

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

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

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

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

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

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

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

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 1

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 2

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 3

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 4

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 5

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 6

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 7

megainformatic - Веселый Буквоежка - онлайн комикс - страница 1

megainformatic - Веселый Буквоежка - онлайн комикс - страница 2

megainformatic - Веселый Буквоежка - онлайн комикс - страница 3

megainformatic - Веселый Буквоежка - онлайн комикс - страница 4

megainformatic - Веселый Буквоежка - онлайн комикс - страница 5

megainformatic - Веселый Буквоежка - онлайн комикс - страница 6

megainformatic - Веселый Буквоежка - онлайн комикс - страница 7

megainformatic - Веселый Буквоежка - онлайн комикс - страница 8

megainformatic - Веселый Буквоежка - онлайн комикс - страница 9

megainformatic - Веселый Буквоежка - онлайн комикс - страница 10

megainformatic - Веселый Буквоежка - онлайн комикс - страница 11

megainformatic - Веселый Буквоежка - онлайн комикс - страница 12

megainformatic - Веселый Буквоежка - онлайн комикс - страница 13

megainformatic - Веселый Буквоежка - онлайн комикс - страница 14

megainformatic - Веселый Буквоежка - онлайн комикс - страница 15

megainformatic - Веселый Буквоежка - онлайн комикс - страница 16

megainformatic - Веселый Буквоежка - онлайн комикс - страница 17

megainformatic - Веселый Буквоежка - онлайн комикс - страница 18

megainformatic - Веселый Буквоежка - онлайн комикс - страница 19

megainformatic - Веселый Буквоежка - онлайн комикс - страница 20

megainformatic - Веселый Буквоежка - онлайн комикс - страница 21

megainformatic - Веселый Буквоежка - онлайн комикс - страница 22

megainformatic - Веселый Буквоежка - онлайн комикс - страница 23

megainformatic - Эмулятор ZX-Spectrum, БК-0010.01 и их работа в эмуляторе DosBox 0.74

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

Предисловие

Данный цикл статей призван помочь тем, кто решил заняться освоением 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.

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

медиа-файлы (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 Кб)
Скачиваний : 15
(585 Kb)
     
необходимые медиа-файлы:
Скачиваний : 0
(676 Кб)
 
 
     
     
     
     
     
     
  [статьи] [как создать игру ну, погоди!] [к содержанию]  
     
 

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



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


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