[英]C++ DirectX First Person Camera
我正在嘗試制作第一人稱相機。 目前,我正在研究x和y旋轉。 旋轉由鼠標距窗口中心的偏移量定義。
RECT rc;
GetWindowRect(g_hWnd, &rc);
UINT width = rc.left + (rc.right - rc.left) / 2;
UINT height = rc.top + (rc.bottom - rc.top) / 2;
POINT pt;
GetCursorPos(&pt);
int xMouseDelta = pt.x - width;
int yMouseDelta = pt.y - height;
g_View = XMMatrixTranslation(0.0f, 1.0f, -5.0f) *
XMMatrixRotationX(yMouseDelta / 100) *
XMMatrixRotationY(xMouseDelta / 100);
問題是,移動它時會晃動。 我不知道我在做什么錯。
如果將“ 100”(靈敏度)更改為更高的數字,我什么也看不到。
我想我對矩陣做錯了,但是我不確定。 還是“ GetCursorPos()”函數不夠精確?
對不起,我的英語不好。 感謝您的閱讀!
您已將增量定義為int
。 因此, delta / 100
也是一個int
允許的角度0
, 1
, 2
, 3
弧度和它們的底片。 只需將它們轉換為float
:
XMMatrixRotationX(yMouseDelta / 100.0f)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.