2017-01-27 11 views
-1

Im рода застрял с этой проблемойC++ SFML пытается переместить объект на мышь Расположение на определенную величину каждый кадр

я создал эту функцию, но по какой-то причине я могу только переместить объект справа от Игрок.

Если я пытаюсь переместить объект влево от игрока, он идет вправо.

вот мой подход:

int Speed = 8; 
int x = Player_x - Mouse_x; 
int y = Player_y - MOuse_y; 

float deg = atan(y/x); 

float erg_x = Speed * cos(deg); 
float erg_y = Speed * sin(deg); 

erg_x/у являются числа я использую в конце, чтобы переместить объект.

Пожалуйста, помогите мне :)

ответ

0

Как пояснил here, atan работает только в первом и четвертом квадранте. Так как переход налево включает второй квадрант, это не сработает.

Таким образом, вы хотите изменить

float deg = atan(y/x); 

в

float deg = atan2(y, x);