Hie ich habe diese funtkion
Spoiler anzeigen
Func _RectCollision($Rect1X1, $Rect1Y1, $Rect1X2, $Rect1Y2, $Rect2X1, $Rect2Y1, $Rect2X2, $Rect2Y2)
; 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
EndFunc ;==>_RectCollision
Mit folgenden werten gefüllt. ich glaube bis jetzt ist noch alles riochtig aber muss ich da noch was ändern??
Spoiler anzeigen
Func _RectCollision($f1pos[0], $f1pos[1], $f1pos[0]+200, $f1pos[1]+300, $fupos[0], $fupos[1], $fupos[0]+100, $fupos[1]+100)
; Prog@ndy
Local Const $tagRECT = "long;long;long;long"
Local $1 = DllStructCreate($tagRECT)
Local $2 = DllStructCreate($tagRECT)
Local $3 = DllStructCreate($tagRECT)
DllStructSetData($1, 1, $f1pos[0])
DllStructSetData($1, 2, $f1pos[1])
DllStructSetData($1, 3, $f1pos[0]+200)
DllStructSetData($1, 4, $f1pos[1]+300)
DllStructSetData($2, 1, $fupos[0])
DllStructSetData($2, 2, $fupos[1])
DllStructSetData($2, 3, $fupos[0]+100)
DllStructSetData($2, 4, $fupos[1]+100)
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
EndFunc ;==>_RectCollision