Naja er soll aja auch net als Garantiemensch auftreten.
Ich würde das als Privatperson verkaufen (ohne für Gewährleistungen und Garantieansprüchen) und einfach die Rechnung beilegen.
MfG
Der_Doc
Naja er soll aja auch net als Garantiemensch auftreten.
Ich würde das als Privatperson verkaufen (ohne für Gewährleistungen und Garantieansprüchen) und einfach die Rechnung beilegen.
MfG
Der_Doc
Hast du in der letzten Zeile vor dem _ das Komma vergessen?
MfG
Der_Doc
Das weis ich net aber legal ist es nicht und deswegen sitzt der Vertreiber auch in Antigua und Barbuda ![]()
MfG
Der_Doc
Bei hochwertigen Waren ist eigentlich nur die Seriennumer auf der Rechnung wichtig.
Wenn soll er eben sagen ist nen Freund oder was weis ich von dir.
MfG
Der_Doc
So wie es die Firma NETAPP bei ihren Filern (Speichersystemen macht)
MfG
Der_Doc
nhezierd
MfG
Der_Doc
So nun ist das alles drin.
#include <Misc.au3>
#include <GUIConstantsEx.au3>
#include <StructureConstants.au3>
HotKeySet("{ESC}", "ende")
[/autoit] [autoit][/autoit] [autoit]; Hauptvariablen-------------------------
$lauf = 0
$f = 0
Global $guix, $guiy
Global $fischx = 200, $fischy = 300, $movex = 10, $movey = 10
; ---------------------------------------
; Guierstellung--------------------------
$gui1 = GUICreate ("Aquarium",(@DesktopWidth), (@DesktopHeight-65),0,0)
GUISetBkColor(0x0000ff,$gui1)
$hintergrund = GUICtrlCreatepic("Aqua\bilder\hintergrund.gif",0,0,@DesktopWidth,@DesktopHeight-50)
$fisch1 = GUICtrlCreatepic("Aqua\bilder\fischrechts1.gif",$fischx,$fischy, 120,100)
$futter = GUICtrlCreatePic("Aqua\bilder\futter.gif",-200,-200,100,100)
GUISetState (@SW_SHOW)
; ---------------------------------------
AdlibEnable("move_fisch", 20)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]; Hauptfunktion des Guis-----------------
While 1
$c = GUIGetCursorInfo()
$f1pos = ControlGetPos( "Aquarium", "", $fisch1)
$fupos = ControlGetPos( "Aquarium", "", $futter)
$msg = GUIGetMsg()
$erg = _RectCollision($f1pos[0], $f1pos[1], $f1pos[0]+$f1pos[2], $f1pos[1]+$f1pos[3], $fupos[0], $fupos[1], $fupos[0]+$fupos[2], $fupos[1]+$fupos[3])
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]if $msg = $GUI_EVENT_CLOSE Then Exit
if $erg = FALSE Then $lauf = 0
if $erg = TRUE AND $lauf = 0 Then
msgbox(0,"",$erg)
$lauf=1
EndIf
If _IsPressed("01") and $f = 1 Then
GUICtrlDelete($futter)
$futter = GUICtrlCreatePic("Aqua\bilder\futter.gif",$c[0]-40,$c[1]-40,100,100)
$f = 1
ElseIf _IsPressed("01") and $f = 0 then
$futter = GUICtrlCreatePic("Aqua\bilder\futter.gif",$c[0]-40,$c[1]-40,100,100)
$f = 1
Endif
Wend
; ---------------------------------------
; Funktionen-----------------------------
Func ende()
Exit
EndFunc
Func move_fisch()
Select
Case $fischx < 0
GUICtrlSetImage($fisch1,"Aqua\bilder\fischrechts1.gif")
$movex = Random(0, 10, 1)
Case $fischx > @DesktopWidth - 120
GUICtrlSetImage($fisch1,"Aqua\bilder\fischlinks1.gif")
$movex = Random(-10, 0, 1)
EndSelect
Select
Case $fischy < 0
$movey = Random(0, 10, 1)
Case $fischy > @DesktopHeight - 100
$movey = Random(-10, 0, 1)
EndSelect
$fischx = $fischx + $movex
$fischy = $fischy + $movey
GUICtrlSetPos($fisch1, $fischx, $fischy)
EndFunc
; ---------------------------------------
;noch unwichtig-------------------------
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
Aber wieder an den Pfad der Bilder denken.
MfG
Der_Doc
Naja es trifft ja mehr wie einmal zu das sich die Rechtecke kreutzen. Aber du möchtest doch bestimmt nur beim ersten Treffer ne Aktion auslösen oder?
MfG
Der_Doc
Habe mich wohl geirrt ![]()
$erg = _RectCollision($f1pos[0], $f1pos[1], $f1pos[0]+$f1pos[2], $f1pos[1]+$f1pos[3], $fupos[0], $fupos[1], $fupos[0]+$fupos[2], $fupos[1]+$fupos[3])
[/autoit]Und es sollte bevor das nächste mal TRUE angezeigt wird mindestens einmal Flase kommen.
MfG
Der_Doc
Erstmal ein Update für deine Bildpositionen.
$erg = _RectCollision($f1pos[0], $f1pos[1], $f1pos[0]+$f1pos[3], $f1pos[1]+$f1pos[2], $fupos[0], $fupos[1], $fupos[0]+$fupos[3], $fupos[1]+$fupos[2])
[/autoit]Dann sollteste du die Bilder "Rahmen" so eng wie möglich um den Fisch und das Futter legen. soll heissen die Bilder so eng wie möglich ausschneiden.
So Das Tool findest du im Forum "linke Seite" in der Box Autoit Downloads.
MfG
Der_Doc
Ja die genauen Positionen deiner Bilder mußt du aber selber raus bekommen
Das war nur ein Versuch von mir.
Ein Tip noch:
wenn du SciTE verwendest, benutze das Tool OrganizeIncludes das wirft überflüssige Includes raus und fügt benötigte ein.
MfG
Der_Doc
Ja nutzlos
aber ne Abbruchbedingung wäre echt der Hammer und würde das ganze gleich um 20% aufwerten. ![]()
MfG
Der_Doc
Bei mir schon
Das einzige die Positionen finde ich net so richtig.
#include <Misc.au3>
#include <GUIConstantsEx.au3>
#include <StructureConstants.au3>
HotKeySet("{ESC}", "ende")
[/autoit] [autoit][/autoit] [autoit]; Hauptvariablen-------------------------
$f = 0
Global $guix, $guiy
Global $fischx = 200, $fischy = 300, $movex = 10, $movey = 10
; ---------------------------------------
; Guierstellung--------------------------
$gui1 = GUICreate ("Aquarium",(@DesktopWidth), (@DesktopHeight-65),0,0)
GUISetBkColor(0x0000ff,$gui1)
$hintergrund = GUICtrlCreatepic("Aqua\bilder\hintergrund.gif",0,0,@DesktopWidth,@DesktopHeight-50)
$fisch1 = GUICtrlCreatepic("Aqua\bilder\fischrechts1.gif",$fischx,$fischy, 120,100)
$futter = GUICtrlCreatePic("Aqua\bilder\futter.gif",-200,-200,100,100)
GUISetState (@SW_SHOW)
; ---------------------------------------
AdlibEnable("move_fisch", 20)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]; Hauptfunktion des Guis-----------------
While 1
$c = GUIGetCursorInfo()
$f1pos = ControlGetPos( "Aquarium", "", $fisch1)
$fupos = ControlGetPos( "Aquarium", "", $futter)
$msg = GUIGetMsg()
$erg = _RectCollision($f1pos[0], $f1pos[1], $f1pos[0]+20, $f1pos[1]+20, $fupos[0], $fupos[1], $fupos[0]+20, $fupos[1]+20)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Select
Case $msg = $GUI_EVENT_CLOSE
Exit
Case $erg = TRUE
msgbox(0,"",$erg)
EndSelect
If _IsPressed("01") and $f = 1 Then
GUICtrlDelete($futter)
$futter = GUICtrlCreatePic("Aqua\bilder\futter.gif",$c[0]-40,$c[1]-40,100,100)
$f = 1
ElseIf _IsPressed("01") and $f = 0 then
$futter = GUICtrlCreatePic("Aqua\bilder\futter.gif",$c[0]-40,$c[1]-40,100,100)
$f = 1
Endif
Wend
; ---------------------------------------
; Funktionen-----------------------------
Func ende()
Exit
EndFunc
Func move_fisch()
Select
Case $fischx < 0
GUICtrlSetImage($fisch1,"Aqua\bilder\fischrechts1.gif")
$movex = Random(0, 10, 1)
Case $fischx > @DesktopWidth - 120
GUICtrlSetImage($fisch1,"Aqua\bilder\fischlinks1.gif")
$movex = Random(-10, 0, 1)
EndSelect
Select
Case $fischy < 0
$movey = Random(0, 10, 1)
Case $fischy > @DesktopHeight - 100
$movey = Random(-10, 0, 1)
EndSelect
$fischx = $fischx + $movex
$fischy = $fischy + $movey
GUICtrlSetPos($fisch1, $fischx, $fischy)
EndFunc
; ---------------------------------------
;noch unwichtig-------------------------
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
ICH HABE VOR DIE BILDER NOCH AQUA VOR GEMACHT ALSO ACHTUNG!
müsstest du eben anpassen
MfG
Der_Doc
So meinte ich das ![]()
Aber funktioniert es denn jetzt?
MfG
Der_Doc
Also ich breche weg wieso ist denn dein Funktionsaufruf NUR
[autoit]_RectCollision()
[/autoit]Er sollte doch
[autoit]_RectCollision($f1pos[0], $f1pos[1], $f1pos[0]+200, $f1pos[1]+300, $fupos[0], $fupos[1], $fupos[0]+100, $fupos[1]+100)
[/autoit]
sein
MfG
Der_Doc
Naja vielleicht solltest du die + Werte mal direkt in die Arrayvariable schreiben.
Leider weis ich auch net was rauskommen soll bei der Funktion.
Poste doch einfach mal dein Script.
MfG
Der_Doc
Da funktionier nix.!
Teste mal das. Musst eben nur die Variablen im Aufruf füllen.
; Aufruf
_RectCollision($f1pos[0], $f1pos[1], $f1pos[0]+200, $f1pos[1]+300, $fupos[0], $fupos[1], $fupos[0]+100, $fupos[1]+100)
; Funktion
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
MfG
Der_Doc
Ist nur die Frage wieso du in der Funktion ein Array benutzt?
Eigentlich reicht es doch wenn du im Funktionsaufruf das mit Arrays machst. Davon mal aber das ich jetzt weis was die Funktion machen soll.
Kollision zweier Rechtecke erkennen. ![]()
MfG
Der_Doc
Was bitte macht die Funktion überhaupt .... mir sagt der Name schon nix
Mfg
Der_Doc