首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

D3D游戏编程系列(6):自己动手编写第一人称射击游戏之第一人称视角的构建

2013-10-13 
D3D游戏编程系列(六):自己动手编写第一人称射击游戏之第一人称视角的构建说起第一人称射击游戏,不得不提第

D3D游戏编程系列(六):自己动手编写第一人称射击游戏之第一人称视角的构建

        说起第一人称射击游戏,不得不提第一人称视角啊,没有这个,那么这个第一就无从谈起啊,我作为一个观察者究竟如何在这个地图上顺利的移动和观察呢,那么,我们一起来研究下。

       我们首先来看下CDXCamera类:

int iMouseX=DXMouseMickeyX();int iMouseY=DXMouseMickeyY();if(iMouseX>0){m_Camera.TurnRight(iMouseX*0.1);m_Player.SetMatrix(m_Camera.GetRightAngle(),m_Camera.GetEye(),m_fDeltaTime);_SendPlayerPosMsg(&m_Player);}else if(iMouseX<0){m_Camera.TurnLeft(-iMouseX*0.1);m_Player.SetMatrix(m_Camera.GetRightAngle(),m_Camera.GetEye(),m_fDeltaTime);_SendPlayerPosMsg(&m_Player);}if(iMouseY>0){m_Camera.TurnDown(iMouseY*0.1);float fAngle=m_Camera.GetUpAngle();if(fAngle<=270 && fAngle>=90){m_Camera.TurnUp(270-fAngle+1);}}else if(iMouseY<0){m_Camera.TurnUp(-iMouseY*0.1);float fAngle=m_Camera.GetUpAngle();if(fAngle<=270 && fAngle>=90){m_Camera.TurnDown(fAngle-90+1);}}
       还是很简单的吧,最后我们clipwindow并且showcursor一下,便可以欺骗玩家眼睛,让玩家可以用鼠标随意控制上下左右视角的效果了。

       其实关于第一人称射击游戏还有很多的内容,我这里给大家留下一个小问题,就是如何去判断一个子弹是否击中对方了呢,我们怎么在子弹的运行轨迹中去识别墙壁这些障碍物呢,呵呵,其实是有一定数学小技巧的,大家想一想应该能想到的。

       本文有不足之处,还望大家多多指正。

热点排行