anderen Punkt zurückgibt. Dadurch kann man z.B. erkennen, im welchen
Winkel die Maus von einem bestimmten Punkt (z.B. der Spieler oder eine
Waffe) zeigt.
Hier ist die Prozedur:
Code: Alles auswählen
Procedure.f WinkelZu(StartX.f,StartY.f,EndX.f,EndY.f)
;EndX Und EndY ist der Vektor zu den der Winkel von
;StartX und StartY zeigen soll.
Protected Angle.f ;Der gesuchte Winkel.
Protected XDistance.f ;Der Abstand zwischen StartX und EndX.
Protected YDistance.f ;Das Gleicher für StartY und EndY.
Protected Distance.f ;Hypotenuse von X- und YDistance.
XDistance=EndX-StartX
YDistance=EndY-StartY
Distance=Sqr(XDistance*XDistance+YDistance*YDistance)
;Nun kommt das wichtigste:
Angle=ACos(XDistance/Distance)*57.295776
If StartY<EndY : Angle=360-Angle : EndIf
ProcedureReturn Angle
EndProcedure
Bildschirmes an.
Hier ist ein Beispiel code:
Code: Alles auswählen
Debug WinkelZu(0,0,100,100)
Punkt (100|100) angezeigt. Die Ausgabe wird 45° und nicht 315° sein;
denn das Koordinatensystem des Bildschirmes verläuft nach unten rechts
und nicht nach oben rechts.