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

    über mich...

    ich habe meine Erfahrungen hauptsächlich gesammelt in (grobe Übersicht):

    - RibbonBar Automation
    - MySQL Nutzung
    - GUIs in vielerlei Ausprägung
    - Nutzung von Powershell / Batch in AutoIt
    - Windows Automatisierung

    außerhalb von AutoIt:

    - Sprachen: PS, Batch, php, html(5), javascript, (perl eingeschränkt), vbs
    - Powershell (AD, WPF inkl. Multi-Threading, ...)
    - Deployment-Automatisierung ohne SCCM
    - Office-Nutzung mit COM-Object (AutoIt, PowerShell)
    - ActiveDirectory und alles was damit zusammenhängt
    - Hyper-V Clustering (Converged / Hyper Converged)
    - Serverhardware (Konfiguration, Aufbau, Architektur, Betrieb)

    Lieblingsthema:

    günstige Automatisierung von Vorgängen, für die andere Firmen viel Geld nehmen

    more to come ...

  • 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

    über mich...

    ich habe meine Erfahrungen hauptsächlich gesammelt in (grobe Übersicht):

    - RibbonBar Automation
    - MySQL Nutzung
    - GUIs in vielerlei Ausprägung
    - Nutzung von Powershell / Batch in AutoIt
    - Windows Automatisierung

    außerhalb von AutoIt:

    - Sprachen: PS, Batch, php, html(5), javascript, (perl eingeschränkt), vbs
    - Powershell (AD, WPF inkl. Multi-Threading, ...)
    - Deployment-Automatisierung ohne SCCM
    - Office-Nutzung mit COM-Object (AutoIt, PowerShell)
    - ActiveDirectory und alles was damit zusammenhängt
    - Hyper-V Clustering (Converged / Hyper Converged)
    - Serverhardware (Konfiguration, Aufbau, Architektur, Betrieb)

    Lieblingsthema:

    günstige Automatisierung von Vorgängen, für die andere Firmen viel Geld nehmen

    more to come ...