2013-05-19 2 views
0

Я пытаюсь сравнить int с позицией Vector2 в инструкции if в моем коде, однако я получаю ошибку: Operator '< =' не может применяться к операндам типа 'Microsoft.Xna .Framework.Vector2 'и' int '.Сравнение int и Vector2's

Вот фрагмент кода:

  for (int i = 0; i < Position.Count(); i++) 
      if (Position[i] < positionTracker) 
      { 
       mSpeed.X = WizardSpeed; 
       mDirection.X = MOVE_LEFT; 
      } 
+1

Вы делаете проблему, если на переменной под названием 'positionTracker', но вы никогда не показываете нам, где вы ее объявляете или что вы с ней делаете. –

ответ

1

Как ошибка говорит, что нет никакого сравнения определяется между вектором и числовым значением. Вы опция:

  • сравнение один из компонентов вектора: Position[i].X < positionTracker
  • сравнить абсолютное значение вектора к числовому значению: Position[i].Length < positionTracker
0

Судя по информации, которую вы дали до сих пор, вы по сравнению Position[i], который имеет тип Vector2 и positionTracker, который имеет тип int.

Как вы сравниваете вектор с int?

Ответ: Вы этого не делаете. Вы можете сравнить абсолютное значение вектора (Position[i].Length) с int. Или вы можете сравнить одну из координат вектора с int. Но вы не можете сравнить вектор с int. Это не имеет смысла.

+0

Теперь я понял. Спасибо за эту полезную информацию, Ян, теперь я знаю для будущей справки. –