Bewegungs funktionen?

  • Hi leute nachdem ich bis jetz ja tüchtig hilfe von euch bekommen habe, brauch ich nun wieder tüchtig hilfe von euch^^

    und zwar kann man das iwie machen das wenn man nach rechts drückt dass, das bild sich dann nach rechts bewegt und wenn man nach links drückt sich das bild nach links bewegt... möchte ein kleines spiel machen^^... habe nur hinbekommen dass, das bild sich nach oben bewegt^^

    hier mein code...

    [autoit]

    #include <GUIConstants.au3>

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

    HotKeySet("{left}","_left")
    HotKeySet("{right}","_right")

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 392, 280, 285, 206)
    GUISetState(@SW_SHOW)
    $pic = GUICtrlCreatePic("f.bmp",175,230,36,43)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    Func _left()
    For $left = 230 To 1 Step -5
    GUICtrlSetPos($pic, 175, $left)
    sleep(1)
    Next
    For $left = 1 To 230 Step 5
    GUICtrlSetPos($pic, 175, $left)
    Sleep(2)
    Next
    EndFunc

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

    Func _right()
    For $left = 230 To 1 Step -5
    GUICtrlSetPos($pic, 175, $left)
    sleep(1)
    Next
    For $left = 1 To 230 Step 5
    GUICtrlSetPos($pic, 175, $left)
    Sleep(2)
    Next
    EndFunc

    [/autoit]
  • wenn Du statt der Y-Koordinate die X-Koordinate veränderst, sollte das klappen :)

    Spoiler anzeigen
    [autoit]

    Func _left()
    For $left = 230 To 1 Step -5
    GUICtrlSetPos($pic, $left, 175 )
    sleep(1)
    Next
    For $left = 1 To 230 Step 5
    GUICtrlSetPos($pic, $left, 175)
    Sleep(2)
    Next

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • und wie würde es dann nach rechts aussehen?

    [autoit]

    Func _right()
    For $right = 175 To 391 Step -5
    GUICtrlSetPos($pic, $right, 230 )
    sleep(1)
    Next
    For $right = 391 To 175 Step 5
    GUICtrlSetPos($pic, $right, 230)
    Sleep(2)
    Next
    Endfunc

    [/autoit]


    Sooo?

  • in der Hilfe gibt es ein Beispiel unter GuiCtrlCreatePic...
    leicht abgewandelt sieht das dann so aus: (bitte dem entsprechend im Scriptordner eine Datei test.gif ablegen...)

    Spoiler anzeigen
    [autoit]

    ;----- Beispiel 2
    #include <WindowsConstants.au3>
    #include <GuiConstantsEx.au3>
    ;#include <GuiConstants.au3>

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

    $gui=GUICreate("Test TransparentBild", 200, 100)
    $pic=GUICreate("", 68, 71, 10, 10,$WS_POPUP,BitOr($WS_EX_LAYERED,$WS_EX_MDICHILD),$gui)
    GUICtrlCreatePic("test.gif",0,0, 0,0)

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

    GUISetState(@SW_SHOW,$pic)
    GUISetState(@SW_SHOW,$gui)

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

    HotKeySet("{ESC}", "main")
    HotKeySet("{LEFT}", "left")
    HotKeySet("{RIGHT}", "right")
    HotKeySet("{DOWN}", "down")
    HotKeySet("{UP}", "up")
    $picPos = WinGetPos($pic)
    $guiPos = WinGetPos($gui)

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

    do
    $msg = GUIGetMsg()
    until $msg = $GUI_EVENT_CLOSE
    Exit

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

    Func main()
    $guiPos = WinGetPos($gui)
    WinMove($gui,"",$guiPos[0]+10,$guiPos[1]+10)
    EndFunc

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

    Func left ()
    $picPos = WinGetPos($pic)
    WinMove($pic,"",$picPos[0]-10,$picPos[1])
    EndFunc

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

    Func right()
    $picPos = WinGetPos($pic)
    WinMove($pic,"",$picPos[0]+10,$picPos[1])
    EndFunc

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

    Func down()
    $picPos = WinGetPos($pic)
    WinMove($pic,"",$picPos[0],$picPos[1]+10)
    EndFunc

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

    Func up()
    $picPos = WinGetPos($pic)
    WinMove($pic,"",$picPos[0],$picPos[1]-10)
    EndFunc

    [/autoit]


    Läuft alles über die Cursor-Tasten rechts links rauf runter...

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)