Ideenlos :-(

  • Hallo Ich mache gerade bei meinem Spiel wieter.
    Ich möchte ein bild Stufenweise (um Pixel) verschieben.
    Beispiel

    [autoit]

    ...;Gui erstellen und anderes
    $pic = GUICtrlCreatePic(@ScriptDir & "\Bild.gif",50,50,20,20)

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

    $a = 50
    $b = 50

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

    While 1
    $a = $a + 1;oder ein anderer beliebiger Wert
    ControlMove("","",$pic,$a,$b)
    WEnd

    [/autoit]

    Dieser Script ist ja reichlich unflexibel wie könnte ich das Bild in einzelnen Schritten an einen bestimmten Punkt oder zufällig in einem bestimmten Bereich umherbewegen ?( (d.h. In einer unendlichen While schleife X Pixel pro durchgang) Ich hoffe ich habe die Frage hinreichend ausformuliert.

    vielen Dank auch hier schon mal für alle die sich damit beschäftigen.

    mfg Ubuntu

  • Bitte Frage genau lesen ich will es Stufenweise verschieben (falls das so geht hab ich es falsch gemacht)

  • Schonmal so probiert:

    [autoit]

    ...;Gui erstellen und anderes
    $pic = GUICtrlCreatePic(@ScriptDir & "\Bild.gif",50,50,20,20)

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

    $a = 25
    $b = 25

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

    While 1
    $i += 1 ; $i = $i + 1, nur kürzer...
    ControlMove("","",$pic,$a*$i,$b*$i)
    WEnd

    [/autoit]


    ungetestet.

  • Also ich guck mir das ganze morgen noch mal an Arbeite auch an einer eigenen Lösung (unter der Dusche kam mir doch noch eine Idee)

    Einmal editiert, zuletzt von Ubuntu (6. Dezember 2009 um 16:45)

  • Du musst noch das $i deklarieren sonst weint Scite :D

    [autoit]

    $pic = GUICtrlCreatePic(@ScriptDir & "\Bild.gif",50,50,20,20)

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

    $a = 25
    $b = 25
    $i = 1
    While 1
    $i += 1 ; $i = $i + 1, nur kürzer...
    ControlMove("","",$pic,$a*$i,$b*$i)
    WEnd

    [/autoit]
  • lol
    auch wenns keine hilfe ist ,ach mal ein neus skript mit dem code und guck was passiert

    [autoit]

    ;Gui erstellen und anderes
    $pic = GUICtrlCreatePic(@ScriptDir & "\Bild.gif",50,50,20,20)

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

    $a = 50
    $b = 50

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

    While 1
    $a = $a + 1;oder ein anderer beliebiger Wert
    ControlMove("","",$pic,$a,$b)
    WEnd

    [/autoit]
    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D

  • Du könntest das ganze in eine Funktion packen, komfortabler:

    [autoit]

    Func _MoveControl($handle, $fromx, $fromy, $tox, $toy)
    If Not IsHWnd($handle) Then $handle = HWnd($handle)
    ; Bewegen des Kontrols in For-Next Schleife...
    EndFunc

    [/autoit]