DirectX Car和世界一起移动

时间:2015-01-05 19:39:52

标签: c++ directx

我试图使用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();

汽车移动,正如我所预期的那样,地平面也是如此。我不明白,因为我没有在翻译中引用地平面。问题是什么?

1 个答案:

答案 0 :(得分:0)

我解决了这个问题,我忘了在飞机上制作一个新的世界矩阵。