在上一个程序的基础上。在基类D3DBase添加一个摄像机函数
//摄像机
void D3DBase::setCamera()
{
//按键事件
//如果A,S,D,W,Q,E,Z,X,C键按下,移动摄像机
if(GetAsyncKeyState('W') & 0x8000) //前
vZ+=0.001f;
if(GetAsyncKeyState('S') & 0x8000) //后
vZ-=0.001f;
if(GetAsyncKeyState('A') & 0x8000) //左
vX-=0.001f;
if(GetAsyncKeyState('D') & 0x8000) //右
vX+=0.001f;
if(GetAsyncKeyState('Q') & 0x8000) //上
vY+=0.001f;
if(GetAsyncKeyState('E') & 0x8000) //下
vY-=0.001f;
//旋转
if(GetAsyncKeyState('Z') & 0x8000) //x轴
rX+=0.001f;
if(GetAsyncKeyState('X') & 0x8000) //y轴
rY+=0.001f;
if(GetAsyncKeyState('C') & 0x8000) //z轴
rZ+=0.001f;
// 世界矩阵
g_World = XMMatrixIdentity();
// 观察矩阵
XMVECTOR Eye = XMVectorSet( 0.0f+vX, 1.0f+vY, -5.0f+vZ, 0.0f );
XMVECTOR At = XMVectorSet( 0.0f+vX, 1.0f+vY, 0.0f, 0.0f );
XMVECTOR Up = XMVectorSet( 0.0f, 1.0f, 0.0f, 0.0f );
g_View = XMMatrixLookAtLH( Eye, At, Up );
g_View*=XMMatrixRotationX(rX)*XMMatrixRotationY(rY)*XMMatrixRotationZ(rZ);
// 投影矩阵
g_Projection = XMMatrixPerspectiveFovLH( XM_PIDIV2, width / (FLOAT)height, 0.01f, 100.0f );
}
以下写在类声明里面public:
D3DBase():vX(0),vY(0),vZ(0),rX(0),rY(0),rZ(0){};//初始化
float vX,vY,vZ;// 观察矩阵 Eye的坐标
float rX,rY,rZ;// 旋转的角度
然后直接在渲染函数调用即可
//渲染
void D3DProgam::Render()
{
setCamera();//这里
// Update our time
static float t = 0.0f;
if( g_driverType == D3D_DRIVER_TYPE_REFERENCE )
{
t += ( float )XM_PI * 0.0125f;
}
分享到:
相关推荐
DirectX.pdf DirectX基础学习 DirectX开发练习
.pdf 格式 我很喜欢的一个DirectX教程,简单易懂,希望对大家有帮助。
1: 1个光照,没有雾 2: 2个光照,没有雾 3: 3个光照,没有雾 4: 1个光照,有雾 5: 2个光照,有雾 6: 3个光照,有雾
DirectX11 With Windows SDK--06 使用ImGui.doc
d3d11 完整demo
DirectX11 With Windows SDK--40 抗锯齿:FXAA.doc
DirectX11 With Windows SDK--38 级联阴影贴图(CSM).doc
DirectX11 With Windows SDK--39 阴影技术(VSM、ESM、EVSM).doc
DirectX11 With Windows SDK--19 编译Assimp并加载模型、新的Effects框架.doc
易语言源码DirectX支持库例程--.rar
DirectX游戏编程基础教程--示例程序2
DirectX11 With Windows SDK教程演示项目 2.x.x和1.x.x的主要区别在于19章之后的代码有大幅修改。 若更新项目后渲染显示有问题,尝试删除Shaders/Cache文件夹 命令行构建 在Win10系统下,若安装cmake的时候添加了...
在Dev-cpp下直接 运行Directx9.0 SDK 程序必须,将文件置于的dev-cpp\packages文件夹下,运行后,将dev-cpp\dll下的文件拷贝到dev-cpp\bin下即可
DirectX游戏编程-----3D机器人模型[Cyborg3D.rar]-精品源代码
DirectX游戏编程-----3D 城市交通[City3D.rar]-精品源代码
鼠标左键 ---------------------------------------- 平移视角 鼠标右键 ---------------------------------------- 旋转视角 鼠标滚轮 ---------------------------------------- 缩放 键盘方向键 --------------...
DirectX游戏编程-----模仿CS(半条命)风格[Zombie.rar]-精品源代码
由王德才编写的DirectX游戏编程基础教程--示例程序1,与directx9的内容顺序都很像,可以辅助了看看,上次资源大小受限,只能一个一个的传了。
DirectX-Repair(Enhanced-Edition)-2023
DirectX9-KB819696-x86-CHS.exe