Problem mit einem Spiel

  • Kurz gesagt geht es in meinem Spiel darum Gegenstände einzusammeln. Ich habe aber das Problem
    Das die Koordinaten der Gegenstände immer Passend sein müssen zu der Spielfigur die sie
    einsammelt, aber die Figur soll sie auch einsammeln wenn es eben eine Abweichung von 10-9 Pixeln gibt.
    Zu diesem Thema gab es schon einen Beitrag doch ich bin nicht so der Überflieger in AutoIT.
    Dort wurde geraten mit Switch zu Arbeiten, aber ich habe das irgendwie nicht verstadnen...

    Ich hoffe ihr könnt mir weiterhelfen.
    Mfg F4R :)

    Ein Spoiler im Spoiler im Spoiler...

    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen

    Die geheime Nachricht ist "Baum" !

    Einmal editiert, zuletzt von F4R (28. März 2013 um 14:09)

  • Das hilft uns wirklich so gar nicht weiter... ^^ Wie sieht dieses Spiel aus? Welche Methoden verwendest du um vom Spieler Eingaben zu erhalten? Benutzt du Controls für deine GUI oder verarbeitest du alle Daten wie Mauskoordinaten selbst?
    Am besten wäre es wenn du das Script dazu hier reinstellen könntest, dann können wir nämlich direkt sehen wo das Problem liegt.

  • [autoit]

    #cs ----------------------------------------------------------------------------

    [/autoit][autoit][/autoit][autoit]

    AutoIt Version: 3.3.8.0
    Author: F4R

    [/autoit][autoit][/autoit][autoit]

    Script Function: Krokofight is a Game
    Template AutoIt script.

    [/autoit][autoit][/autoit][autoit]

    #ce ----------------------------------------------------------------------------

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Fish", 760, 480, 264, 133)
    $Pic1 = GUICtrlCreatePic("C:\Users\Paul\Desktop\Krokodile.jpg", 0, 0, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    GUISetState(@SW_SHOW)
    GUISetBkColor(0xFFFFFF)
    #EndRegion ### END Koda GUI section ###

    [/autoit][autoit][/autoit][autoit]

    HotKeySet("{up}","up")
    HotKeySet("{down}","down")
    Global $pos = 800

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Local $e = 0
    Func up()
    $e = $e -10
    GUICtrlSetPos($pic1,1,$e)
    If $e = 450 Then
    $e = $e -10
    EndIf
    If $e = 0 Then
    $e = $e +10
    EndIf
    EndFunc

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Local $e = 0
    Func down()
    $e = $e +10
    GUICtrlSetPos($pic1,1,$e)
    If $e = 450 Then
    $e = $e -10
    EndIf
    If $e = 10 Then
    $e = $e +10
    EndIf
    EndFunc
    Local $sleep = 100
    Local $round = 0
    While 1
    $msg = GUIGetMsg()
    If $msg = -3 Then Exit
    $random = Random(1,46,1)

    If $random = 1 Then
    $p1 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 0, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p1,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p1)
    EndIf
    If $random = 2 Then
    $p2 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 10, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p2,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p2)

    EndIf
    If $random = 3 Then
    $p3 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 20, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p3,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p3)

    EndIf
    If $random = 4 Then
    $p4 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 30, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p4,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p4)

    EndIf
    If $random = 5 Then
    $p5 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 40, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p5,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p5)

    EndIf
    If $random = 6 Then
    $p6 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 50, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p6,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p6)

    EndIf
    If $random = 7 Then
    $p7 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 60, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p7,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p7)

    EndIf
    If $random = 8 Then
    $p8 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 70, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p8,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p8)

    EndIf
    If $random = 9 Then
    $p9 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 80, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p9,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p9)

    EndIf
    If $random = 10 Then
    $p10 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 90, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p10,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p10)

    EndIf
    If $random = 11 Then
    $p11 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 100, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p11,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p11)

    EndIf
    If $random = 12 Then
    $p12 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 110, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p12,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p12)

    EndIf
    If $random = 13 Then
    $p13 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 120, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p13,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p13)

    EndIf
    If $random = 14 Then
    $p14 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 130, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p14,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p14)

    EndIf
    If $random = 15 Then
    $p15 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 140, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p15,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p15)

    EndIf
    If $random = 16 Then
    $p16 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 150, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p16,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p16)

    EndIf
    If $random = 17 Then
    $p17 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 160, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p17,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p17)

    EndIf
    If $random = 18 Then
    $p18 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 170, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p18,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p18)

    EndIf
    If $random = 19 Then
    $p19 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 180, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p19,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p19)

    EndIf
    If $random = 20 Then
    $p20 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 190, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p20,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p20)

    EndIf
    If $random = 21 Then
    $p21 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 200, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p21,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p21)

    EndIf
    If $random = 22 Then
    $p22 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 210, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p22,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p22)

    EndIf
    If $random = 23 Then
    $p23 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 220, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p23,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p23)

    EndIf
    If $random = 24 Then
    $p24 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 230, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p24,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p24)

    EndIf

    If $random = 25 Then
    $p25 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 240, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p25,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p25)

    EndIf
    If $random = 26 Then
    $p26 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 250, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p26,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p26)

    EndIf
    If $random = 27 Then
    $p27 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 260, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p27,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p27)

    EndIf
    If $random = 28 Then
    $p28 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 270, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p28,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p28)

    EndIf
    If $random = 29 Then
    $p29 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 280, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p29,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p29)

    EndIf
    If $random = 30 Then
    $p30 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 290, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p30,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p30)

    EndIf
    If $random = 31 Then
    $p31 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 300, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p31,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p31)

    EndIf
    If $random = 32 Then
    $p32 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 310, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p32,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p32)

    EndIf
    If $random = 33 Then
    $p33 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 320, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p33,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p33)

    EndIf
    If $random = 34 Then
    $p34 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 330, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p34,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p34)

    EndIf
    If $random = 35 Then
    $p35 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 340, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p35,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p35)

    EndIf
    If $random = 36 Then
    $p36 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 350, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p36,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p36)

    EndIf
    If $random = 37 Then
    $p37 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 360, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p37,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p37)

    EndIf
    If $random = 38 Then
    $p38 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 370, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p38,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p38)

    EndIf
    If $random = 39 Then
    $p39 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 380, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p39,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p39)

    EndIf
    If $random = 40 Then
    $p40 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 390, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p40,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p40)

    EndIf
    If $random = 41 Then
    $p41 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 400, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p41,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p41)

    EndIf
    If $random = 42 Then
    $p42 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 410, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p42,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p42)

    EndIf
    If $random = 43 Then
    $p43 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 420, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p43,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p43)

    EndIf
    If $random = 44 Then
    $p44 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 430, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p44,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p44)

    EndIf
    If $random = 45 Then
    $p45 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 440, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p45,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p45)

    EndIf
    If $random = 46 Then
    $p46 = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, 450, 28, 28, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    Do
    $pos = $pos -10
    GUICtrlSetPos($p46,$pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p46)

    EndIf
    If $pos = $e Then Exit
    $round = $round + 1

    [/autoit][autoit][/autoit][autoit]

    $pos = 800

    [/autoit][autoit][/autoit][autoit]

    If $sleep > 10 Then
    $sleep = $sleep -10
    EndIf

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    WEnd

    [/autoit]


    Mein Problem ist, dass ich noch schreiben muss wie die Gegenstände gezählt werden die man eingesammelt hat :D

    Ein Spoiler im Spoiler im Spoiler...

    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen

    Die geheime Nachricht ist "Baum" !

    Einmal editiert, zuletzt von F4R (28. März 2013 um 12:48)

  • ... Du musst mich ja nicht gleich mit Code erschlagen :P. Also das geht definitiv auch einfacher und in ca. einem viertel der Zeilen.. und übersichtlicher ^^.
    Ich nehme an du willst Krokodile von Rechts über den Bildschirm auf deinen Spieler zurennen lassen denen man dann mit den Pfeiltasten nach oben/unten vertikal ausweichen muss?

  • Ja so ungefähr :D
    Mir fehlt nur noch das Punktesystem...

    Ein Spoiler im Spoiler im Spoiler...

    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen

    Die geheime Nachricht ist "Baum" !

  • Die ganze Geschichte mit den If $random = 1 bis If $random = 46 kannst du definitiv einfacher haben ^^
    Probiers mal so:

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    AutoIt Version: 3.3.8.0
    Author: F4R

    [/autoit] [autoit][/autoit] [autoit]

    Script Function: Krokofight is a Game
    Template AutoIt script.

    [/autoit] [autoit][/autoit] [autoit]

    #ce ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Fish", 760, 480, 264, 133)
    $Pic1 = GUICtrlCreatePic("C:\Users\Paul\Desktop\Krokodile.jpg", 0, 0, 28, 28, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
    GUISetState(@SW_SHOW)
    GUISetBkColor(0xFFFFFF)
    #endregion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    HotKeySet("{up}", "up")
    HotKeySet("{down}", "down")
    Global $pos = 800

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Local $e = 0
    Func up()
    $e = $e - 10
    GUICtrlSetPos($Pic1, 1, $e)
    If $e = 450 Then
    $e = $e - 10
    EndIf
    If $e = 0 Then
    $e = $e + 10
    EndIf
    EndFunc ;==>up

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Local $e = 0
    Func down()
    $e = $e + 10
    GUICtrlSetPos($Pic1, 1, $e)
    If $e = 450 Then
    $e = $e - 10
    EndIf
    If $e = 10 Then
    $e = $e + 10
    EndIf
    EndFunc ;==>down
    Local $sleep = 100
    Local $round = 0
    While 1
    $msg = GUIGetMsg()
    If $msg = -3 Then Exit
    $random = Random(0, 45, 1)

    [/autoit] [autoit][/autoit] [autoit]

    $p = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, $random*10, 28, 28, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
    Do
    $pos = $pos - 10
    GUICtrlSetPos($p, $pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p)

    [/autoit] [autoit][/autoit] [autoit]

    If $pos = $e Then Exit
    $round = $round + 1

    [/autoit] [autoit][/autoit] [autoit]

    $pos = 800

    [/autoit] [autoit][/autoit] [autoit]

    If $sleep > 10 Then
    $sleep = $sleep - 10
    EndIf
    WEnd

    [/autoit]
    UNPLEASANT SPOILER

    You just lost the game!

  • Hätte man mir das früher gesagt.... hab ne ewigkeit damit verbracht das zu Kopieren und umzuschreiben :cursing:
    Aber Danke so geht es auch

    Ein Spoiler im Spoiler im Spoiler...

    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen

    Die geheime Nachricht ist "Baum" !

  • Jetzt brauch ich nur noch das Punktesystem, was ja mein eigentliches Problem war...
    Also dass der Gegenstand nicht um 100% mit der Koordinate von dem krokodil übereinstimmt
    aber trotzdem erkannt wird :)
    Sowas wie :

    [autoit]

    If $pos = $e Then
    $count = $count + 1

    [/autoit]

    Ein Spoiler im Spoiler im Spoiler...

    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen

    Die geheime Nachricht ist "Baum" !

  • Die Bilder sind ja immer 28x28 groß, oder?
    Du könntest zu den x- bzw. y-Koordinaten jeweils 14 addieren um den Mittelpunkt zu erhalten und dann damit den Abstand zwischen zwischen zwei Figuren ausrechnen. Dann könntest du überprüfen, ob der Abstand kleiner als z.B. 10 ist.

    [autoit]

    $d = Sqrt( ($x2-$x1)^2 + ($y2-$y1)^2 )

    [/autoit]
  • Ich weis nicht ob das so richtig ist ?(

    [autoit]

    $d = Sqrt( (0-$e)^2 + ($random*10-800)^2 )
    If $d < 10 Then
    GUICtrlDelete($p)
    $count = $count + 1
    EndIf

    [/autoit]

    Ein Spoiler im Spoiler im Spoiler...

    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen

    Die geheime Nachricht ist "Baum" !

  • Ich hab es hin bekommen!
    Danke an die schnelle Hilfe :thumbup:

    [autoit]

    $d = (0+$e)*14-($random*10+$pos)*14

    [/autoit]

    Ein Spoiler im Spoiler im Spoiler...

    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen

    Die geheime Nachricht ist "Baum" !

  • Also ich hätts so gemacht (net schön aber klappt ^^)

    Funktionsaufruf
    [autoit]

    Do
    $pos = $pos - 10
    GUICtrlSetPos($p, $pos)
    _Kollision()
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p)

    [/autoit]
    _Kollision() zählt wenn daneben
    [autoit]

    Func _Kollision()
    $Pos1 = ControlGetPos($Form2, "", $Pic1) ; Position Spieler
    $Pos2 = ControlGetPos($Form2, "", $p) ; Position Gegner
    If $Pos1[0] >= $Pos2[0] Then
    If ($Pos1[1]+$Pos1[3] < $Pos2[1]) Or ($Pos1[1] > $Pos2[1]+$Pos2[3]) Then
    ; So rum wird gezählt wenn nicht getroffen wurde
    EndIf
    EndIf
    EndFunc

    [/autoit]
    _Kollision() zählt wenn getroffen
    [autoit]

    Func _Kollision()
    $Pos1 = ControlGetPos($Form2, "", $Pic1) ; Position Spieler
    $Pos2 = ControlGetPos($Form2, "", $p) ; Position Gegner
    If $Pos1[0] >= $Pos2[0] Then
    If ($Pos1[1]+$Pos1[3] > $Pos2[1]) And ($Pos1[1] < $Pos2[1]+$Pos2[3]) Then
    ;So rum werden Treffer angezeigt
    EndIf
    EndIf
    EndFunc

    [/autoit]
    UNPLEASANT SPOILER

    You just lost the game!

    Einmal editiert, zuletzt von shadow667 (28. März 2013 um 13:44)

  • Ich glaube ich geh euch langsam auf die Nerven aber
    mein Zähler zählt nur bis 1 und nicht weiter ?(

    [autoit]

    While 1

    $msg = GUIGetMsg()
    If $msg = -3 Then Exit
    $random = Random(0, 45, 1)
    $d = (0+$e)*14-($random*10+$pos)*14
    $p = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, $random*10, 28, 28, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
    Do
    $pos = $pos - 10
    GUICtrlSetPos($p, $pos)
    Sleep($sleep)
    Until $pos = 0

    [/autoit][autoit][/autoit][autoit]

    $round = $round + 1

    [/autoit][autoit][/autoit][autoit]

    $pos = 800

    [/autoit][autoit][/autoit][autoit]

    If $sleep > 10 Then
    $sleep = $sleep - 10
    EndIf
    Local $count = 0

    If $d < 20 Then
    GUICtrlDelete($p)
    $count = $count + 1
    GUICtrlSetData($label1,$count)
    EndIf
    WEnd

    [/autoit]

    Ein Spoiler im Spoiler im Spoiler...

    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen

    Die geheime Nachricht ist "Baum" !

  • Klar, du setzt $Count bei jedem Schleifendurchlauf auf 0 (hier Zeile 22)
    Schreib mal

    [autoit]

    Global $Count = 0

    [/autoit]

    vor die Zeile

    [autoit]

    While 1

    [/autoit]

    und nimm

    [autoit]

    Local $Count = 0

    [/autoit]

    aus der Schleife

    Habs hier mal so gemacht:

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    AutoIt Version: 3.3.8.0
    Author: F4R

    [/autoit] [autoit][/autoit] [autoit]

    Script Function: Krokofight is a Game
    Template AutoIt script.

    [/autoit] [autoit][/autoit] [autoit]

    #ce ----------------------------------------------------------------------------
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $Count = 0, $round = 1

    [/autoit] [autoit][/autoit] [autoit]

    #region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Fish! Runde 1", 760, 480, 264, 133)
    $Pic1 = GUICtrlCreatePic(@ScriptDir&"\Krokodile.jpg", 1, 0, 28, 28, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
    GUISetState(@SW_SHOW)
    GUISetBkColor(0xFFFFFF)
    #endregion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    HotKeySet("{up}", "up")
    HotKeySet("{down}", "down")
    Global $pos = 800

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Local $e = 0
    Func up()
    $e = $e - 10
    GUICtrlSetPos($Pic1, 1, $e)
    If $e = 450 Then
    $e = $e - 10
    EndIf
    If $e = 0 Then
    $e = $e + 10
    EndIf
    EndFunc ;==>up

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Local $e = 0
    Func down()
    $e = $e + 10
    GUICtrlSetPos($Pic1, 1, $e)
    If $e = 450 Then
    $e = $e - 10
    EndIf
    If $e = 10 Then
    $e = $e + 10
    EndIf
    EndFunc ;==>down
    Local $sleep = 100

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    _3(GUIGetMsg())
    $random = Random(0, 45, 1)

    [/autoit] [autoit][/autoit] [autoit]

    $p = GUICtrlCreatePic(@ScriptDir&"\feind.jpg", 800, $random*10, 28, 28, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
    Do
    _3(GUIGetMsg())
    $pos = $pos - 10
    GUICtrlSetPos($p, $pos)
    If _Kollision() Then ExitLoop
    Sleep($sleep)
    Until $pos = 0
    $round += 1
    WinSetTitle($Form2, "", "Fish! Runde "&$round&" Treffer "&$Count)
    GUICtrlDelete($p)

    [/autoit] [autoit][/autoit] [autoit]

    If $pos = $e Then Exit

    [/autoit] [autoit][/autoit] [autoit]

    $pos = 800

    [/autoit] [autoit][/autoit] [autoit]

    If $sleep > 10 Then
    $sleep = $sleep - 10
    EndIf
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Kollision()
    $Pos1 = ControlGetPos($Form2, "", $Pic1) ; Position Spieler
    $Pos2 = ControlGetPos($Form2, "", $p) ; Position Gegner
    If $Pos1[0] >= $Pos2[0] Then
    If ($Pos1[1]+$Pos1[3] > $Pos2[1]) And ($Pos1[1] < $Pos2[1]+$Pos2[3]) Then
    $Count += 1
    Return True
    EndIf
    EndIf
    Return False
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _3($msg)
    If $msg = -3 Then Exit
    EndFunc

    [/autoit]
    UNPLEASANT SPOILER

    You just lost the game!

    2 Mal editiert, zuletzt von shadow667 (28. März 2013 um 14:38) aus folgendem Grund: Fehler behoben (Fenstertitel hat sich nur bei Treffern aktualisiert)

  • Danke funktioniert Perfekt!

    Großes Dankeschön an alle die mir geholfen haben ! :thumbup:

    Ein Spoiler im Spoiler im Spoiler...

    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen
    Spoiler anzeigen

    Die geheime Nachricht ist "Baum" !