即時創建一個3D的房間,您可以用第一人稱視角 走動我已經定義了eyeX eyeY和EYEZ的位置,如下圖所示:DirectX的C++第一人稱視角
float eyeX = 0;
float eyeY = 100;
float eyeZ = 75;
這裏是我的LOOKAT代碼:
D3DXMatrixLookAtLH(&g_matView, &D3DXVECTOR3(eyeX, eyeY,eyeZ),
&D3DXVECTOR3(LookatX, LookatY, LookatZ),
&D3DXVECTOR3(0.0f, 1.0f, 0.0f));
g_pd3dDevice->SetTransform(D3DTS_VIEW, &g_matView);
我的代碼讓我移動相機周圍,但不會像第一人稱視角,我在努力實現這一目標。
// forwards = UP ARROW
// Backwards = DOWN ARROW
// rotate left = LEFT ARROW
// rotate right = RIGHT ARROW
case WM_KEYDOWN:
{
// Handle any non-accelerated key commands
switch (wparam)
{
case VK_RIGHT:
if(eyeX >=-50)
{
--eyeX;
}
return (0);
case VK_LEFT:
if(eyeX <=50)
{
++eyeX;
}
return (0);
case VK_DOWN:
if(eyeZ >=-50)
{
--eyeZ;
}
return (0);
case VK_UP:
if(eyeZ <=50)
{
++eyeZ;
}
return (0);
case VK_SPACE:
if(eyeY >=-50)
{
--eyeY;
}
return (0);
case VK_SHIFT:
if(eyeY <=50)
{
++eyeY;
}
return (0);
}
break;
}
LookatX = eyeX + 5.0f;
LookatY = eyeY;
LookatZ = eyeZ;
case WM_DESTROY:
{
// kill the application
PostQuitMessage(0);
return(0);
}
default:
break;
} // end switch
任何人都可以提出一些變化,這將讓我在我的房間移動像第一人稱視角?
你是否遇到了播放器的移動問題,或者相機的旋轉(環視)? – Hannesh