Итак, я пытаюсь работать над программированием простой камеры, чтобы использовать пользовательский ввод для перемещения по игровому миру, когда я столкнулся с некоторыми действительно странными ошибками, связанными с оператором (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 :: к каждому определению и функции. Ошибка. Страница MSDN для C2677 и C2678 не помогла. Googlings только дал мне простые вещи.
Gyazo ссылки:
https://gyazo.com/e2f62026d00e8fa82142b24de3fe32b5 https://gyazo.com/f1bbc321abc3a167d519bf1d671edcc6
Edit: я понятия не имею, почему или как, но он работает сейчас. Так что я ... У меня час моего времени. >.> Черт возьми, это кодирование ... lol.