我一直在使用OpenGL和SFML 1.6一段時間,它一直是一個爆炸!有一個例外:我似乎無法正確實現相機類。你看,我正在嘗試創建一個名爲「Camera」的C++類。這裏是我的功能:試圖在OpenGL/SFML中實現鼠標外觀「相機」
Camera::Strafe(float fSpeed)
檢查是否被按下的WASD鍵,如果是這樣,在「fSpeed」在各自的方向移動相機。
Camera::MouseMove(int currentX, int currentY)
應該提供的一款第一人稱鼠標的外觀,同時在當前的鼠標座標,並相應地旋轉相機。我的Strafe()實現工作正常,但我似乎無法得到正確的MouseMove()。
我已經從閱讀OpenGL鼠標外觀實現的其他資源中知道,我必須將鼠標放在每一幀之後,並且我已經關閉了這部分內容。但就是這樣。我似乎無法得到如何實際從鼠標座標旋轉相機。可能需要使用一些trig,我敢打賭。
好的,這清除了一些東西了。但是如果將俯仰,偏航和滾動保存爲浮動或向量?兩者都有優勢嗎?謝謝! –
俯仰,偏航和滾轉的值將是您正在移動的實際角度(以度或弧度存儲取決於您)。每個人都將是一個浮動,但沒有理由不能將其中的3個全部存儲到3維向量中,以方便訪問。 – MGZero
間距是圍繞X軸旋轉,偏航是圍繞Y軸旋轉,而滾動是圍繞Z軸旋轉。但是,你如何從鼠標輸入獲得角度? –