第一人称视角前后左右实现[部分转]
使用方法,只要改变 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[原文]
浙公网安备 33010602011771号