我试图使用directX11为我的汽车模型创建简单的动作,我这样做了:
if (GetAsyncKeyState(VK_DOWN))
eyex += 0.05f;
if (GetAsyncKeyState(VK_UP))
eyex -= 0.05f;
if (GetAsyncKeyState(VK_LEFT))
//eyenew += (eyey + 0.05f);
eyey += 0.05f;
if (GetAsyncKeyState(VK_RIGHT))
eyey -= 0.05f;
if (GetAsyncKeyState(VK_ADD))
eyez += 0.05f;
if (GetAsyncKeyState(VK_DIVIDE))
eyez -= 0.05f;
XMFLOAT4 nEw = XMFLOAT4(eyex, eyey, eyez, 0.0f);
Car->SetTranslation(nEw.x, nEw.y, nEw.z);
Car->UpdateWorld();
XMFLOAT4 Eye = XMFLOAT4(eye1, eye2, eye3, 0.0f);
XMFLOAT4 At = XMFLOAT4(0.0f, 0.0f, 0.0f, 0.0f);
XMFLOAT4 Up = XMFLOAT4(0.0f, 1.0f, 0.0f, 0.0f);
mCam->SetEye(Eye);
mCam->CalculateViewProjection();
汽车移动,正如我所预期的那样,地平面也是如此。我不明白,因为我没有在翻译中引用地平面。问题是什么?
答案 0 :(得分:0)
我解决了这个问题,我忘了在飞机上制作一个新的世界矩阵。