0
所以我試圖編寫一個簡單的攝像頭來使用用戶輸入來移動遊戲世界,當我遇到一些非常奇怪的運算符匹配錯誤(C2677 & C2678)。 他們是從線運算符匹配錯誤VS2015
camPosition += moveLeftRight * camRight;
camPosition += moveBackForward * camForward;
camTarget = camPosition + camTarget;
定義:
float moveLeftRight = 0.0f;
float moveBackForward = 0.0f;
DirectX::XMVECTOR camPosition;
DirectX::XMVECTOR camTarget;
DirectX::XMVECTOR camForward = DirectX::XMVectorSet(0.0f, 0.0f, 1.0f, 0.0f);
DirectX::XMVECTOR camRight = DirectX::XMVectorSet(1.0f, 0.0f, 0.0f, 0.0f);
而且錯誤閱讀:
Error C2677 binary '*': no global operator found which takes type 'DirectX::XMVECTOR' (or there is no acceptable conversion)
//Hovering "operand types are: float * DirectX::XMVECTOR"
Error C2678 binary '+': no operator found which takes a left-hand operand of type 'DirectX::XMVECTOR' (or there is no acceptable conversion)
//Hovering "operand types are: DirectX::XMVECTOR * DirectX::XMVECTOR"
它之前編譯。當我使用命名空間DirectX時,它編譯得非常好。當我添加一些移動代碼時,我想可能會有些事情搞砸了。我刪除了命名空間並將DirectX ::添加到了每個定義和函數中。錯誤。 C2677和C2678的MSDN頁面根本沒有任何幫助。 Google只給了我簡單的東西。
Gyazo鏈接:
https://gyazo.com/e2f62026d00e8fa82142b24de3fe32b5 https://gyazo.com/f1bbc321abc3a167d519bf1d671edcc6
編輯:我不知道爲什麼或者怎麼樣,但是現在的工作。所以,耶...我有一個小時的時間。 >。該死的編碼...大聲笑。