GDI+ Schlangenlinien

  • Ein Script das eine sich ständig fortführende geschlängelte Linie in ein Fenster zeichnet:
    Am anfang des Scripts sind Globale Variablen für die Einstellungen

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GDIPlus.au3>

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

    Global $GUIWidth = 400 ;Breite des Fensters
    Global $GUIHeight = 400 ;Höhe des Fensters
    Global $Size = 3 ;Durchmesser des Kreises der die einzelnen Bögen vervollständigt
    Global $PenSize = 1 ;Randstärke der Linie
    Global $Angle = Random(0, 3, 1) * 90 ;Startwinkel (Gültige Werte: 0°, 90°, 180°, 270°)
    Global $iX = Random($Size, $GUIWidth / $Size - $Size, 1) * $Size ;X-Startkoordinate
    Global $iY = Random($Size, $GUIHeight / $Size - $Size, 1) * $Size ;Y-Startkoordinate
    Global $GUIColorBG = 0xFFFFFFFF ;Hintergrundfarbe der GUI
    Global $LineColor = 0xFF000000 ;Farbe der geschlängelten Linie
    Global $RandomFactor = 40 ;Wahrscheinlichkeit eines Richtungswechsels (1 zu...)

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

    If $Angle = 0 Then
    Global $VectorX = $Size
    Global $VectorY = 0
    ElseIf $Angle = 90 Then
    Global $VectorX = 0
    Global $VectorY = $Size
    ElseIf $Angle = 180 Then
    Global $VectorX = $Size * - 1
    Global $VectorY = 0
    ElseIf $Angle = 270 Then
    Global $VectorX = 0
    Global $VectorY = $Size * - 1
    EndIf

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

    Global $Switch180 = 180

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

    $hGUI = GUICreate("Schlangenlinien", $GUIWidth, $GUIHeight)
    GUISetState()

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

    _GDIPlus_Startup()

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

    Global $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    Global $hBitmap = _GDIPlus_BitmapCreateFromGraphics($GUIWidth, $GUIHeight, $hGraphics)
    Global $Buffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsSetSmoothingMode($Buffer, 2)
    _GDIPlus_GraphicsClear($Buffer, $GUIColorBG)

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

    Global $hPen = _GDIPlus_PenCreate($LineColor, $PenSize)

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

    AdlibRegister("_DrawArc", 20)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_PenDispose($hPen)
    _GDIPlus_Shutdown()
    Exit
    EndSwitch
    WEnd

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

    Func _DrawArc()
    If Random(1, 40, 1) = 1 Then
    _ChangeDirection()
    EndIf
    #Region CollisionCheck
    If $iX >= $GUIWidth - $Size * 2 And $Angle = 0 And $iY < $GUIHeight / 2 Then
    _GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
    $VectorX = 0
    $VectorY = $Size
    $Angle = 90
    EndIf
    If $iX >= $GUIWidth - $Size * 2 And $Angle = 0 And $iY >= $GUIHeight / 2 Then
    _GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
    $VectorX = 0
    $VectorY = $Size * - 1
    $Angle = 270
    EndIf
    If $iX <= 0 And $Angle = 180 And $iY < $GUIHeight / 2 Then
    _GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
    $VectorX = 0
    $VectorY = $Size
    $Angle = 90
    EndIf
    If $iX <= 0 And $Angle = 180 And $iY >= $GUIHeight / 2 Then
    _GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
    $VectorX = 0
    $VectorY = $Size * - 1
    $Angle = 270
    EndIf
    If $iY >= $GUIHeight - $Size * 2 And $Angle = 90 And $iX < $GUIWidth / 2 Then
    _GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
    $VectorX = $Size
    $VectorY = 0
    $Angle = 0
    EndIf
    If $iY >= $GUIHeight - $Size * 2 And $Angle = 90 And $iX >= $GUIWidth / 2 Then
    _GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
    $VectorX = $Size * - 1
    $VectorY = 0
    $Angle = 180
    EndIf
    If $iY <= 0 And $Angle = 270 And $iX < $GUIHeight / 2 Then
    _GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
    $VectorX = $Size
    $VectorY = 0
    $Angle = 0
    EndIf
    If $iY <= 0 And $Angle = 270 And $iX >= $GUIHeight / 2 Then
    _GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
    $VectorX = $Size * - 1
    $VectorY = 0
    $Angle = 180
    EndIf
    #EndRegion CollisionCheck
    $iX += $VectorX
    $iY += $VectorY
    $Switch180 *= -1
    _GDIPlus_GraphicsDrawArc($Buffer, $iX, $iY, $Size, $Size, $Angle, $Switch180, $hPen)
    _GDIPlus_GraphicsDrawImageRect($hGraphics, $hBitmap, 0, 0, $GUIWidth, $GUIHeight)
    EndFunc ;==>_DrawArc

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

    Func _ChangeDirection()
    If $Angle = 0 Or $Angle = 180 Then
    If Random(0, 1, 1) = 1 Then
    $Angle = 90
    Else
    $Angle = 270
    EndIf
    ElseIf $Angle = 90 Or $Angle = 270 Then
    If Random(0, 1, 1) = 1 Then
    $Angle = 0
    Else
    $Angle = 180
    EndIf
    EndIf
    If $iX >= $GUIWidth - $Size * 2 Then $Angle = 180
    If $iY >= $GUIHeight - $Size * 2 Then $Angle = 270
    If $iX <= 0 Then $Angle = 0
    If $iY <= 0 Then $Angle = 90
    If $Angle = 0 Then
    $VectorX = $Size
    $VectorY = 0
    ElseIf $Angle = 90 Then
    $VectorX = 0
    $VectorY = $Size
    ElseIf $Angle = 180 Then
    $VectorX = $Size * - 1
    $VectorY = 0
    ElseIf $Angle = 270 Then
    $VectorX = 0
    $VectorY = $Size * - 1
    EndIf
    _GDIPlus_GraphicsDrawEllipse($hGraphics, $iX, $iY, $Size, $Size, $hPen)
    EndFunc ;==>_ChangeDirection

    [/autoit]


    Ich gehe nicht davon aus das das irgendjemand gebrauchen kann, aber nunja :P

    Edit: Version mit Pfeiltastensteuerung

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GDIPlus.au3>
    #include <Misc.au3>

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

    Global $GUIWidth = 400 ;Breite des Fensters
    Global $GUIHeight = 400 ;Höhe des Fensters
    Global $Size = 3 ;Durchmesser des Kreises der die einzelnen Bögen vervollständigt
    Global $PenSize = 1 ;Randstärke der Linie
    Global $Angle = Random(0, 3, 1) * 90 ;Startwinkel (Gültige Werte: 0°, 90°, 180°, 270°)
    Global $iX = Random($Size, $GUIWidth / $Size - $Size, 1) * $Size ;X-Startkoordinate
    Global $iY = Random($Size, $GUIHeight / $Size - $Size, 1) * $Size ;Y-Startkoordinate
    Global $GUIColorBG = 0xFFFFFFFF ;Hintergrundfarbe der GUI
    Global $LineColor = 0xFF000000 ;Farbe der geschlängelten Linie

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

    Global $LEFT = False
    Global $UP = False
    Global $RIGHT = False
    Global $DOWN = False

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

    If $Angle = 0 Then
    $RIGHT = True
    Global $VectorX = $Size
    Global $VectorY = 0
    ElseIf $Angle = 90 Then
    $DOWN = True
    Global $VectorX = 0
    Global $VectorY = $Size
    ElseIf $Angle = 180 Then
    $LEFT = True
    Global $VectorX = $Size * - 1
    Global $VectorY = 0
    ElseIf $Angle = 270 Then
    $UP = True
    Global $VectorX = 0
    Global $VectorY = $Size * - 1
    EndIf

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

    Global $Switch180 = 180

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

    $hGUI = GUICreate("Schlangenlinien", $GUIWidth, $GUIHeight)
    GUISetState()

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

    _GDIPlus_Startup()

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

    Global $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    Global $hBitmap = _GDIPlus_BitmapCreateFromGraphics($GUIWidth, $GUIHeight, $hGraphics)
    Global $Buffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsSetSmoothingMode($Buffer, 2)
    _GDIPlus_GraphicsClear($Buffer, $GUIColorBG)

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

    Global $hPen = _GDIPlus_PenCreate($LineColor, $PenSize)

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

    AdlibRegister("_DrawArc", 20)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_GraphicsDispose($Buffer)
    _GDIPlus_ImageDispose($hBitmap)
    _GDIPlus_PenDispose($hPen)
    _GDIPlus_Shutdown()
    Exit
    EndSwitch
    If _IsPressed("25") Then
    If $LEFT = False Then
    $LEFT = True
    $UP = False
    $RIGHT = False
    $DOWN = False
    $Angle = 180
    $VectorX = $Size * - 1
    $VectorY = 0
    _GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
    Sleep(100)
    EndIf
    EndIf
    If _IsPressed("26") Then
    If $UP = False Then
    $LEFT = False
    $UP = True
    $RIGHT = False
    $DOWN = False
    $Angle = 270
    $VectorX = 0
    $VectorY = $Size * - 1
    _GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
    Sleep(100)
    EndIf
    EndIf
    If _IsPressed("27") Then
    If $RIGHT = False Then
    $LEFT = False
    $UP = False
    $RIGHT = True
    $DOWN = False
    $Angle = 0
    $VectorX = $Size
    $VectorY = 0
    _GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
    Sleep(100)
    EndIf
    EndIf
    If _IsPressed("28") Then
    If $DOWN = False Then
    $LEFT = False
    $UP = False
    $RIGHT = False
    $DOWN = True
    $Angle = 90
    $VectorX = 0
    $VectorY = $Size
    _GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
    Sleep(100)
    EndIf
    EndIf
    WEnd

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

    Func _DrawArc()
    #Region CollisionCheck
    If $iX >= $GUIWidth - $Size * 2 And $Angle = 0 And $iY < $GUIHeight / 2 Then
    $LEFT = False
    $UP = False
    $RIGHT = False
    $DOWN = True
    _GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
    $VectorX = 0
    $VectorY = $Size
    $Angle = 90
    EndIf
    If $iX >= $GUIWidth - $Size * 2 And $Angle = 0 And $iY >= $GUIHeight / 2 Then
    $LEFT = False
    $UP = True
    $RIGHT = False
    $DOWN = False
    _GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
    $VectorX = 0
    $VectorY = $Size * - 1
    $Angle = 270
    EndIf
    If $iX <= 0 And $Angle = 180 And $iY < $GUIHeight / 2 Then
    $LEFT = False
    $UP = False
    $RIGHT = False
    $DOWN = True
    _GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
    $VectorX = 0
    $VectorY = $Size
    $Angle = 90
    EndIf
    If $iX <= 0 And $Angle = 180 And $iY >= $GUIHeight / 2 Then
    $LEFT = False
    $UP = True
    $RIGHT = False
    $DOWN = False
    _GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
    $VectorX = 0
    $VectorY = $Size * - 1
    $Angle = 270
    EndIf
    If $iY >= $GUIHeight - $Size * 2 And $Angle = 90 And $iX < $GUIWidth / 2 Then
    $LEFT = False
    $UP = False
    $RIGHT = True
    $DOWN = False
    _GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
    $VectorX = $Size
    $VectorY = 0
    $Angle = 0
    EndIf
    If $iY >= $GUIHeight - $Size * 2 And $Angle = 90 And $iX >= $GUIWidth / 2 Then
    $LEFT = True
    $UP = False
    $RIGHT = False
    $DOWN = False
    _GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
    $VectorX = $Size * - 1
    $VectorY = 0
    $Angle = 180
    EndIf
    If $iY <= 0 And $Angle = 270 And $iX < $GUIHeight / 2 Then
    $LEFT = False
    $UP = False
    $RIGHT = True
    $DOWN = False
    _GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
    $VectorX = $Size
    $VectorY = 0
    $Angle = 0
    EndIf
    If $iY <= 0 And $Angle = 270 And $iX >= $GUIHeight / 2 Then
    $LEFT = True
    $UP = False
    $RIGHT = False
    $DOWN = False
    _GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
    $VectorX = $Size * - 1
    $VectorY = 0
    $Angle = 180
    EndIf
    #EndRegion CollisionCheck
    $iX += $VectorX
    $iY += $VectorY
    $Switch180 *= -1
    _GDIPlus_GraphicsDrawArc($Buffer, $iX, $iY, $Size, $Size, $Angle, $Switch180, $hPen)
    _GDIPlus_GraphicsDrawImageRect($hGraphics, $hBitmap, 0, 0, $GUIWidth, $GUIHeight)
    EndFunc ;==>_DrawArc

    [/autoit]


    Edit2: Update
    Bild verschwindet nicht mehr nachdem man das Fenster minimiert o.Ä. (Wird in Bitmap zwischengespeichert)

  • Ich gehe nicht davon aus das das irgendjemand gebrauchen kann, aber nunja :P

    doch, das hilft mir bei meinem GDI Problem :D Direkt schöne Beispielen. Danke ;)

    mfG

  • Ist dir wirklich gut gelungen.

    Habs mal ein bisschen modifiziert.
    Hoffe du bist mir deswegen nicht böse. ;)

    In Zeile 78 kannst du einstellen, ob die Schlangenlinien nach und nach verschwinden sollen.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GDIPlus.au3>

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

    Opt("GUIOnEventMode", 1)

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

    Global $hGUI, _ ;Handle zu dem Hauptfenster
    $VectorX, _
    $VectorY

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

    Global $hGraphics, _ ;Graphikobjekt zum zeichnen
    $hBitmap, _ ;Bitmapobjekt
    $backbuffer, _ ;Buffer, in den alles hineingezeichnet wird, damit es Flüssiger aussieht
    $hPen, _ ;Pinselobjekt zum Zeichnen der Schlangenlinien
    $brush ;transparenter Pinsel, zum Überzeichnen der Schlangenlinien

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

    Global $GUIWidth = 400, _ ;Breite des Fensters
    $GUIHeight = 400, _ ;Höhe des Fensters
    $Size = 5, _ ;Durchmesser des Kreises der die einzelnen Bögen vervollständigt
    $PenSize = 1, _ ;Randstärke der Linie
    $Angle = Random(0, 3, 1) * 90, _ ;Startwinkel (Gültige Werte: 0°, 90°, 180°, 270°)
    $iX = Random($Size, $GUIWidth / $Size - $Size, 1) * $Size, _ ;X-Startkoordinate
    $iY = Random($Size, $GUIHeight / $Size - $Size, 1) * $Size, _ ;Y-Startkoordinate
    $GUIColorBG = 0x10FFFFFF, _ ;Hintergrundfarbe der GUI
    $LineColor = 0xFF000000, _ ;Farbe der geschlängelten Linie
    $RandomFactor = 40, _ ;Wahrscheinlichkeit eines Richtungswechsels (1 zu...)
    $Switch180 = 180

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

    If $Angle = 0 Then
    $VectorX = $Size
    $VectorY = 0
    ElseIf $Angle = 90 Then
    $VectorX = 0
    $VectorY = $Size
    ElseIf $Angle = 180 Then
    $VectorX = $Size * - 1
    $VectorY = 0
    ElseIf $Angle = 270 Then
    $VectorX = 0
    $VectorY = $Size * - 1
    EndIf

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

    $hGUI = GUICreate("Schlangenlinien", 400, 400)
    GUISetBkColor(0xFFFFFF)
    GUISetOnEvent(-3, "_Close")
    GUISetState()

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

    _Startup()

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

    AdlibRegister("_DrawArc", 10)

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

    While 1
    Sleep(1000)
    WEnd

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

    Func _Startup()
    _GDIPlus_Startup()

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

    $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics($GUIWidth, $GUIHeight, $hGraphics)
    $backbuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsSetSmoothingMode($backbuffer, 4)

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

    $hPen = _GDIPlus_PenCreate($LineColor, $PenSize)
    $brush = _GDIPlus_BrushCreateSolid(0x05FFFFFF)
    EndFunc

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

    Func _Close()
    _GDIPlus_BrushDispose($brush)
    _GDIPlus_PenDispose($hPen)
    _GDIPlus_GraphicsDispose($backbuffer)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_Shutdown()
    Exit
    EndFunc

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

    Func _DrawArc()
    ;~ _GDIPlus_GraphicsFillRect($backbuffer, 0, 0, $GUIWidth, $GUIHeight, $brush)
    If Random(1, 40, 1) = 1 Then
    _ChangeDirection()
    EndIf
    If $iX >= $GUIWidth - $Size * 2 And $Angle = 0 And $iY < $GUIHeight / 2 Then
    _GDIPlus_GraphicsDrawEllipse($backbuffer, $iX, $iY, $Size, $Size, $hPen)
    $VectorX = 0
    $VectorY = $Size
    $Angle = 90
    EndIf
    If $iX >= $GUIWidth - $Size * 2 And $Angle = 0 And $iY >= $GUIHeight / 2 Then
    _GDIPlus_GraphicsDrawEllipse($backbuffer, $iX, $iY, $Size, $Size, $hPen)
    $VectorX = 0
    $VectorY = $Size * - 1
    $Angle = 270
    EndIf
    If $iX <= 0 And $Angle = 180 And $iY < $GUIHeight / 2 Then
    _GDIPlus_GraphicsDrawEllipse($backbuffer, $iX, $iY, $Size, $Size, $hPen)
    $VectorX = 0
    $VectorY = $Size
    $Angle = 90
    EndIf
    If $iX <= 0 And $Angle = 180 And $iY >= $GUIHeight / 2 Then
    _GDIPlus_GraphicsDrawEllipse($backbuffer, $iX, $iY, $Size, $Size, $hPen)
    $VectorX = 0
    $VectorY = $Size * - 1
    $Angle = 270
    EndIf
    If $iY >= $GUIHeight - $Size * 2 And $Angle = 90 And $iX < $GUIWidth / 2 Then
    _GDIPlus_GraphicsDrawEllipse($backbuffer, $iX, $iY, $Size, $Size, $hPen)
    $VectorX = $Size
    $VectorY = 0
    $Angle = 0
    EndIf
    If $iY >= $GUIHeight - $Size * 2 And $Angle = 90 And $iX >= $GUIWidth / 2 Then
    _GDIPlus_GraphicsDrawEllipse($backbuffer, $iX, $iY, $Size, $Size, $hPen)
    $VectorX = $Size * - 1
    $VectorY = 0
    $Angle = 180
    EndIf
    If $iY <= 0 And $Angle = 270 And $iX < $GUIHeight / 2 Then
    _GDIPlus_GraphicsDrawEllipse($backbuffer, $iX, $iY, $Size, $Size, $hPen)
    $VectorX = $Size
    $VectorY = 0
    $Angle = 0
    EndIf
    If $iY <= 0 And $Angle = 270 And $iX >= $GUIHeight / 2 Then
    _GDIPlus_GraphicsDrawEllipse($backbuffer, $iX, $iY, $Size, $Size, $hPen)
    $VectorX = $Size * - 1
    $VectorY = 0
    $Angle = 180
    EndIf
    $iX += $VectorX
    $iY += $VectorY
    $Switch180 *= -1
    _GDIPlus_GraphicsDrawArc($backbuffer, $iX, $iY, $Size, $Size, $Angle, $Switch180, $hPen)
    _GDIPlus_GraphicsDrawImageRect($hGraphics, $hBitmap, 0, 0, $GUIWidth, $GUIHeight) ; Das Zeichnen hat im Buffer stattgefunden. Damit das Ganze sichtbar wird, wird das Ganze in das Graphikobjekt kopiert
    EndFunc ;==>_DrawArc

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

    Func _ChangeDirection()
    If $Angle = 0 Or $Angle = 180 Then
    If Random(0, 1, 1) = 1 Then
    $Angle = 90
    Else
    $Angle = 270
    EndIf
    ElseIf $Angle = 90 Or $Angle = 270 Then
    If Random(0, 1, 1) = 1 Then
    $Angle = 0
    Else
    $Angle = 180
    EndIf
    EndIf
    If $iX >= $GUIWidth - $Size * 2 Then $Angle = 180
    If $iY >= $GUIHeight - $Size * 2 Then $Angle = 270
    If $iX <= 0 Then $Angle = 0
    If $iY <= 0 Then $Angle = 90
    If $Angle = 0 Then
    $VectorX = $Size
    $VectorY = 0
    ElseIf $Angle = 90 Then
    $VectorX = 0
    $VectorY = $Size
    ElseIf $Angle = 180 Then
    $VectorX = $Size * - 1
    $VectorY = 0
    ElseIf $Angle = 270 Then
    $VectorX = 0
    $VectorY = $Size * - 1
    EndIf
    _GDIPlus_GraphicsDrawEllipse($backbuffer, $iX, $iY, $Size, $Size, $hPen)
    EndFunc ;==>_ChangeDirection

    [/autoit]
    Zitat

    [Heute, 11:39] Raupi: Soll ich es dir machen?
    [Heute, 11:47] BugFix: "Soll ich es dir machen? " - also Raupi !! bitte nicht so öffentlich :rofl:

    Zitat

    [Heute, 11:51] BugFix: und ich werde es mir jetzt machen - das Mittagessen :P

    AMsg UDF v1.00.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%
    OwnStyle UDF Version 1.10.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%

  • Selbstkollisionscrashkurs:

    Vektoren der gezeichneten Linien speichern.
    Wenn aktuelle Linie einen bereits gespeicherten Vektor erreicht: checken wo es weitergeht,
    da weiterzeichnen.

    Hört sich schwer an, ist aber noch viel Schwerer umzusetzen :D

    Meine Projekte:
    ClipBoard Manager (beendet)
    Gutes ClipBoard Verwaltungs Programm mit nützlichen Funktionen.

    HTML Creator (beendet)
    Nützliches Tool um schnell ein eigenes HTML Dokument zu erstellen.