簡體   English   中英

C ++ DirectX第一人稱攝影機

[英]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允許的角度0123弧度和它們的底片。 只需將它們轉換為float

XMMatrixRotationX(yMouseDelta / 100.0f)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM