Camera 用于第一人称射击的DirectX摄像机定位 我用DirectX 10和C++制作了一个非常简单的第一人称射击游戏,只不过是一个枪和目标,我有枪和目标,枪射击的方向是子弹。
但是我不能让摄像机锁定在枪上,看着十字准线, 我有这个相机Camera 用于第一人称射击的DirectX摄像机定位 我用DirectX 10和C++制作了一个非常简单的第一人称射击游戏,只不过是一个枪和目标,我有枪和目标,枪射击的方向是子弹。,camera,directx,Camera,Directx,但是我不能让摄像机锁定在枪上,看着十字准线, 我有这个相机 vecEye.x = g_f_GunX; vecEye.y = g_f_GunY + 3; vecEye.z = g_f_GunZ - 5.0; vecAt.x = g_f_CrossX; vecAt.y = g_f_CrossY; vecAt.z = g_f_CrossZ; g_Camera.SetViewParams( &vecEye, &vecAt ); 为此,我的十字线只是枪前面的一个对象,它随着枪移动,
vecEye.x = g_f_GunX;
vecEye.y = g_f_GunY + 3;
vecEye.z = g_f_GunZ - 5.0;
vecAt.x = g_f_CrossX;
vecAt.y = g_f_CrossY;
vecAt.z = g_f_CrossZ;
g_Camera.SetViewParams( &vecEye, &vecAt );
为此,我的十字线只是枪前面的一个对象,它随着枪移动,我将相机的代码放在“onFrameRender”方法中
这是我的假设,这个代码应该把相机放在我的枪后面,当枪(和十字准线)移动时,相机应该一直看着屏幕中央的十字准线,但是在运行它的时候,相机根本没有这样做,根本没有移动枪或十字准线
任何帮助都是非常感激的
出于这个目的,我的十字线只是枪前的一个物体,它随着枪移动
除非“眼睛”直接位于枪管后面(枪管会挡住视线),否则这是行不通的——如果“眼睛”甚至略高于枪管,你最终会通过十字线对象看地面,而视线方向根本与相机方向不匹配
有几种处理方法:
此外,在3d射手中,摄像机方向通常存储为角度的偏航/俯仰/滚动组合 谢谢你,我现在就试试看,别以为你能解释我的另一个问题(双关语不是有意的)