microsoftxiao

记忆 流逝

导航

第一人称视角前后左右实现[部分转]

使用方法,只要改变 eye和LookAt的X和Z就可以实现前后,左右的移动。
HRESULT CMyD3DApplication::SetView()
{
    //左右移动
   D3DXVec3Normalize(&pOut,&ac);
   
   RT = D3DXMATRIX(1, 0, 0, 0,
       0, 1, 0, 0,
       0, 0, 1, 0,
       -m_matAni.eye[0], -m_matAni.eye[1], -m_matAni.eye[2], 1);

   D3DXMatrixRotationAxis( &R2, &pOut, 0u);
   R = RT * R2;
   RT = D3DXMATRIX(1, 0, 0, 0,
       0, 1, 0, 0,
       0, 0, 1, 0,
       m_matAni.eye[0], m_matAni.eye[1], m_matAni.eye[2], 1);
   R = R * RT;
   D3DXVec3Transform(&Vtemp, &m_matAni.LookAt, &R);
   m_matAni.LookAt[0] = Vtemp.x;
   m_matAni.LookAt[1] = Vtemp.y;
   m_matAni.LookAt[2] = Vtemp.z;
 return S_OK;
}

http://www.gameres.com/Articles/Program/Visual/3D/movefirsteye.htm[原文]

posted on 2006-03-28 12:17  龙巢NET刀  阅读(385)  评论(0)    收藏  举报