Heute habe ich versucht ein Spiel mit QuickDraw zu erstellen, was aber nicht ganz geklappt hat, da es ständig abgestürzt ist. Nach viertelstündigem Rumprobieren bin ich zum Schluss gekommen, dass es an _QuickDraw_Line liegt, was das Script crashen lässt wenn die Distanz kleiner ist als 3 pixel .
Also was kann man dagegen tun? Richtig. Selber Hand anlegen.
Kurz und knapp: Folgende zeile bei der _QuickDraw_Line funktion einfügen:
Code:
If Sqrt(($x2 - $x1) ^ 2 + ($y2 - $y1) ^ 2) < 3 Then Return False
Code:
Func _QuickDraw_Line( $x1, $y1, $x2, $y2, $Color ) Local $Result = DllCall( $QuickDrawDLL, "bool:cdecl","RenderLine", "int", $x1, "int", $y1, "int", $x2, "int", $y2, "long", $Color ) If @error Then Return SetError(@error, @extended, 0) Return True EndFunc
Nachher (das crashsichere):
Code:
Func _QuickDraw_Line( $x1, $y1, $x2, $y2, $Color ) If Sqrt(($x2 - $x1) ^ 2 + ($y2 - $y1) ^ 2) < 3 Then Return False Local $Result = DllCall( $QuickDrawDLL, "bool:cdecl","RenderLine", "int", $x1, "int", $y1, "int", $x2, "int", $y2, "long", $Color ) If @error Then Return SetError(@error, @extended, 0) Return True EndFunc