Hallo Leute
Ich bin zurzeit an einem Spiel und bräuchte etwas Hilfe.Ich hatte schon einige Funktionen die herausfinden ob ein Objekt ein anderes berührt,aber diese waren einfach zu langsam.
Kennt jemand von euch eine bzw. mehrere Funktionen dafür ? Sollte schnell (und) komfortabel sein,da es viele Objekte in einer Map gibt.
Objektberührung
-
- [ gelöst ]
-
nof@ker2 -
27. Mai 2009 um 22:05 -
Geschlossen -
Erledigt
-
-
Also ich denke es bleibt dir nur die möglichkeit die Positionen zu vergleichen! Die Positionen würde ich in Array speichern oder so, aber es währe bessen wenn du ein Script hättest
-
Probiers mal mit der Funktion:
Spoiler anzeigen
[autoit]Func _RectCollision($Rect1X1,$Rect1Y1,$Rect1X2,$Rect1Y2, $Rect2X1, $Rect2Y1, $Rect2X2, $Rect2Y2)
[/autoit]
; Prog@ndy
Local Const $tagRECT = "long;long;long;long"
Local $1 = DllStructCreate($tagRECT)
Local $2 = DllStructCreate($tagRECT)
Local $3 = DllStructCreate($tagRECT)
DllStructSetData($1,1,$Rect1X1)
DllStructSetData($1,2,$Rect1Y1)
DllStructSetData($1,3,$Rect1X2)
DllStructSetData($1,4,$Rect1Y2)
DllStructSetData($2,1,$Rect2X1)
DllStructSetData($2,2,$Rect2Y1)
DllStructSetData($2,3,$Rect2X2)
DllStructSetData($2,4,$Rect2Y2)
Local $r = DllCall("User32.dll", "int", "IntersectRect", "ptr", DllStructGetPtr($3), "ptr", DllStructGetPtr($1), "ptr", DllStructGetPtr($2))
If @error Then Return SetError(1,0,0)
Return $r[0]<>0
EndFuncIst für Rechtecke, sollte aber recht schnell sein.
-
danke Greek funktioniert Falls es nochmal Probleme gibt werde ich mich melden