2017-01-27 1 views
-1

Im Art vonC++ SFML versucht, um einen bestimmten Betrag ein Objekt an die Mausposition zu bewegen jeden Rahmen

mit diesem Problem stecken

ich diese Funktion erstellt, aber aus irgendeinem Grund kann ich nur das Objekt rechts von der Bewegung Spieler.

Wenn ich versuche, das Objekt auf der linken Seite des Players zu bewegen, geht es nach rechts.

hier ist mein Ansatz:

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/y sind die Zahlen i am Ende verwenden, um das Objekt zu bewegen.

Bitte helfen Sie mir :)

Antwort

0

Wie here erklärt, atan funktioniert nur im ersten und vierten Quadranten. Da der zweite Quadrant nach links geht, wird dies nicht funktionieren.

Als solche sollten Sie

float deg = atan(y/x); 

zu

float deg = atan2(y, x); 
ändern
Verwandte Themen