|
我在试写一个3D飞行模拟的东西,但是跟随摄像机(跟随飞机一起飞)怎么也搞不定,逻辑上好象又看不出什么问题??很奇怪,请高手帮忙看一下。
为简单,运行后,飞机只是沿着Z轴飞行,但摄像机却不动,我用手动的方式控制摄机前后运动都没问题,用飞机的位置去控制就不行了:(((
相关代码如下:
void CCamera::Manipulate(D3DXVECTOR3 vecMove)
{
//vecMove,是取的飞机的位置矢量
。。。//用键盘控制camera,这里省
SetTarget(vecMove);
SetEye();
}
void CCamera::SetTarget(D3DXVECTOR3 vecMove)
{
m_PosTarget.Set(vecMove.x, vecMove.y, vecMove.z);
}
void CCamera::SetEye()
{
m_PosEye = m_PosTarget - m_VecTargetForward;
}//m_VecTargetForward是camera的m_PosEye到m_PosTarget方向的矢量
最后在CGame类中的调用如下:
m_pD3DDevice->BeginScene();
Manipulate(vecMove);
SetupCamera();
m_pD3DDevice->EndScene();
我真的不知道是怎么回事了。在屏幕上打出了摄像机的eye,target,forward都是按要求变化的,但就是图像不对:(,有人可以给出这段的代码吗?????
|
|