1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. KingLoL

Beiträge von KingLoL

  • Manga Downloader legal?

    • KingLoL
    • 30. Juli 2014 um 20:50

    Hey Leute,

    ich hab heute einen ganz simplen Manga Downlaoder programmiert der mir jedes One Piece Kapitel downloaden kann...

    ich wollte nur wissen ob das überhaupt legal ist, zwecks Copyright?

    Hier der Quelltext:

    Spoiler anzeigen
    [autoit]


    ...

    [/autoit]
  • ListView Scrollbar Problem

    • KingLoL
    • 21. Mai 2014 um 14:29

    hab nach suchen im englischen forum was gefunden:

    einfach eine dritte spalte mir 21 pixeln breite einfügen, dann klappts:

    [autoit]

    _GUICtrlListView_SetColumnWidth(-1, 0, 70)
    _GUICtrlListView_SetColumnWidth(-1, 1, 335)
    _GUICtrlListView_SetColumnWidth(-1, 2, $LVSCW_AUTOSIZE_USEHEADER)

    [/autoit]
  • ListView Scrollbar Problem

    • KingLoL
    • 21. Mai 2014 um 11:51

    Hi,

    ich hab seit längerem ein kleines Problem mit dem ListView Control
    Sobal zu viele Einträge in der Liste sind, erscheint eine vertikale Scrollbar, die auch sinn macht.
    Aber weil die Scrollbar im ListView erscheint, erscheint noch eine horizontale um das durch die Scrollbar verdeckte wieder sichtbar zu machen.

    Die Scrollbar kann man anscheinend nicht entfernen, aber kann man die ListenÜberschriften so aufteilen, dass die horizontale Scrollbar verschwindet?

    Meine GUI:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>
    #include <ComboConstants.au3>

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

    $Main = GUICreate("Watchlist", 442, 464)
    $Menu_File = GUICtrlCreateMenu("Datei")
    $Menu_File_Import = GUICtrlCreateMenuItem("Liste importieren", $Menu_File)
    $Menu_File_Export = GUICtrlCreateMenuItem("Liste exportieren", $Menu_File)
    GUICtrlCreateMenuItem("", $Menu_File)
    $Menu_File_AddFilm = GUICtrlCreateMenuItem("Film hinzufügen", $Menu_File)
    $Combo = GUICtrlCreateCombo("Nach Datum", 8, 8, 137, 25, BitOR($CBS_DROPDOWNLIST, $CBS_AUTOHSCROLL))
    GUICtrlSetData(-1, "Nach Name|Zuletzt hinzugefügt|Zuletzt kommentiert", "Nach Datum")
    $List = GUICtrlCreateListView("Release|Name", 8, 32, 426, 382, BitOr($GUI_SS_DEFAULT_LISTVIEW, $WS_VSCROLL), BitOR($WS_EX_CLIENTEDGE, $LVS_EX_FULLROWSELECT))
    GUICtrlSetState(-1, $GUI_FOCUS)
    _GUICtrlListView_SetColumnWidth(-1, 0, 70)
    _GUICtrlListView_SetColumnWidth(-1, 1, $LVSCW_AUTOSIZE_USEHEADER)
    For $i = 30 To 0 Step -1
    GUICtrlCreateListViewItem($i, $List)
    Next
    $Menu_Film = GUICtrlCreateContextMenu($List)
    $Menu_Film_Info = GUICtrlCreateMenuItem("Info", $Menu_Film)
    $Menu_Film_Edit = GUICtrlCreateMenuItem("Bearbeiten", $Menu_Film)
    $Menu_Film_Remove = GUICtrlCreateMenuItem("Löschen", $Menu_Film)
    GUICtrlCreateMenuItem("", $Menu_Film)
    $Menu_Film_Add = GUICtrlCreateMenuItem("Film hinzufügen", $Menu_Film)
    GUISetState(@SW_SHOW)

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

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

    [/autoit]
  • Desktop-Basketball (Mini-Spiel)

    • KingLoL
    • 29. März 2013 um 23:51

    jo danke :D du kannst die schwerkraft auch in der settings.ini ändern, jeder hat ja eine andere Mausgeschwindigkeit..

  • Desktop-Basketball (Mini-Spiel)

    • KingLoL
    • 29. März 2013 um 23:16

    ok danke für die Info, habs geändert =)

  • Desktop-Basketball (Mini-Spiel)

    • KingLoL
    • 29. März 2013 um 22:51

    Hi,

    wie die Überschrift schon verrät möchte ich hier mein kleines "Spiel für Zwischendurch" vorstellen. Bis jetzt konnte ich es leider nur an einem PC testen und hoffe daher, dass es auch mit anderen Bildschirmgrößen läuft. Hier erstmal eine kurze Erklärung:

    Auf eurem Bildschirm erscheint ein Basketball, ein Korb und eine rote Linie. Die rote Linie könnt ihr nicht "übertreten" ansonsten lasst ihr den Ball sofort los. Ziel ist es, den Ball von oben in den Korb zu befördern. Je länger der Ball fliegt, desto mehr Punkte gibt es. Mit F2 könnt ihr euch ausserdem noch ein paar Infos anzeigen lassen (ursprünglich nur zum Entwickeln) und per Enter könnt ihr die Schwerkraft umdrehen, allerdings wird der Korb dabei nicht gedreht => ihr könnt so ganz einfach Punkte machen. Gedacht ist diese Funktion jedoch nur zum lösen des Balls, falls er im Korb hängen sollte. Ansonsten wünsch ich euch viel Spaß beim Spielen =)

    Download

  • Pixel einlesen und ggf. Färben

    • KingLoL
    • 27. Februar 2013 um 21:51

    Hi,
    ich arbeite momentan an einem Skript, dass bestimmte Pixel ausliest und bei Bedarf färbt. Meine Funktion arbeitet mit einer While Schleife, weil meine vorherige Rekursive Funktion nicht funktioniert hat. Die Schleifen Funktion funktionert leider nur teilweise. Ich habe momentan 2 Probleme mit ihr:
    -Der nicht eingefärbte Bereich ist danach komplett schwarz, obwohl vorher ein Bild darauf geladen war und diese Pixel garnicht verändert wurden
    -An einer Stelle vom gefärbten Bereich "reißt" er einfach ab => Schnitt obwohl die Funktion dort weiter Färben sollte

    Die problematische Funktion ist _PaintRecursiv()

    Spoiler anzeigen
    [autoit]

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

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

    _GDIPlus_Startup()

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

    Dim $hBitmap[4]
    Global $BrushSize = 10
    Global $Tolerance = 10
    $PrimaryDown = False
    $SecondaryDown = False
    $PlusDown = False
    $MinusDown = False
    $UpArrowDown = False
    $DownArrowDown = False
    $sFile = FileOpenDialog("Bild öffnen", @DesktopDir, "Bilder (*.jpg;*.bmp;*.png)")
    ;~ $sFile = @DesktopDir &"\Foto.jpg"
    AutoItSetOption("MouseCoordMode", 2)

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

    If $sFile <> "" Then
    $MiscDLL = DllOpen("user32.dll")

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

    ConsoleWrite("->Lädt Bild..." &@CRLF)
    $hBitmap[1] = _GDIPlus_ImageLoadFromFile($sFile)
    $hBitmap[2] = _GDIPlus_ImageLoadFromFile($sFile)
    $hBitmap[3] = _GDIPlus_ImageLoadFromFile($sFile)
    $hBuffer3 = _GDIPlus_ImageGetGraphicsContext($hBitmap[3])
    ConsoleWrite("+>Geladen..." &@CRLF)

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

    $iWidth = _GDIPlus_ImageGetWidth($hBitmap[1])
    $iHeight = _GDIPlus_ImageGetHeight($hBitmap[1])
    _GreyScale($hBitmap[1], 0, 0, $iWidth, $iHeight) ; Bereich wird in Graustufen umberechnet
    _GDIPlus_GraphicsDrawImageRect($hBuffer3, $hBitmap[1], 0, 0, $iWidth, $iHeight)

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

    $hGui = GUICreate("", $iWidth, $iHeight)
    $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGui)
    $hBitmap[0] = _GDIPlus_BitmapCreateFromGraphics($iWidth, $iHeight, $hGraphics)
    $hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap[0])
    GUISetState()

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

    While 1
    $FPSTimer = TimerInit()
    $GUIMsg = GUIGetMsg()
    $MouseX = MouseGetPos(0)
    $MouseY = MouseGetPos(1)
    Switch $GUIMsg
    Case $GUI_EVENT_CLOSE
    ExitLoop

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

    Case $GUI_EVENT_PRIMARYDOWN
    $PrimaryDown = True

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

    Case $GUI_EVENT_PRIMARYUP
    $PrimaryDown = False

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

    Case $GUI_EVENT_SECONDARYDOWN
    $SecondaryDown = True

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

    Case $GUI_EVENT_SECONDARYUP
    $SecondaryDown = False
    EndSwitch

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

    If _IsPressed("6B", $MiscDLL) Then
    If Not $PlusDown Then $BrushSize += 5
    $PlusDown = True
    Else
    $PlusDown = False
    EndIf
    If _IsPressed("6D", $MiscDLL) Then
    If Not $MinusDown And $BrushSize >= 5 Then $BrushSize -= 5
    $MinusDown = True
    Else
    $MinusDown = False
    EndIf
    If _IsPressed("26", $MiscDLL) Then
    If Not $UpArrowDown And $Tolerance <= 95 Then $Tolerance += 5
    $UpArrowDown = True
    Else
    $UpArrowDown = False
    EndIf
    If _IsPressed("28", $MiscDLL) Then
    If Not $DownArrowDown And $Tolerance >= 5 Then $Tolerance -= 5
    $DownArrowDown = True
    Else
    $DownArrowDown = False
    EndIf
    If _IsPressed("53", $MiscDLL) Then
    _PaintRecursiv($hBitmap[2], $hBitmap[3], $MouseX, $MouseY, $iWidth, $iHeight)
    _GDIPlus_GraphicsDrawImageRect($hBuffer, $hBitmap[3], 0, 0, $iWidth, $iHeight)
    EndIf

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

    If $PrimaryDown Then
    _GDIPlus_GraphicsDrawImageRectRect($hBuffer, $hBitmap[2], $MouseX, $MouseY, $BrushSize, $BrushSize, $MouseX, $MouseY, $BrushSize, $BrushSize)
    ElseIf $SecondaryDown Then
    _GDIPlus_GraphicsDrawImageRectRect($hBuffer, $hBitmap[1], $MouseX, $MouseY, $BrushSize, $BrushSize, $MouseX, $MouseY, $BrushSize, $BrushSize)
    EndIf

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

    _GDIPlus_GraphicsDrawImageRect($hBuffer, $hBitmap[3], 0, 0, $iWidth, $iHeight)
    _GDIPlus_GraphicsDrawString($hBuffer, "FPS: " &Round(1000 / TimerDiff($FPSTimer)) &" Pinselgröße: " &$BrushSize &" Toleranz: " &$Tolerance &"%", 10, 10, "Arial", 12)
    _GDIPlus_GraphicsDrawImageRect($hGraphics, $hBitmap[0], 0, 0, $iWidth, $iHeight) ;zeichne auf die GUI
    WEnd

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

    _GDIPlus_GraphicsDispose($hGraphics) ; gibt Grafikhandle wieder frei
    _GDIPlus_ImageSaveToFile($hBitmap[0], @DesktopDir &"\Test.jpg") ; speichere fertiges Bild

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

    For $i = 0 To UBound($hBitmap) - 1
    _GDIPlus_BitmapDispose($hBitmap[$i])
    Next
    _GDIPlus_GraphicsDispose($hBuffer)
    _GDIPlus_GraphicsDispose($hBuffer3)
    _GDIPlus_Shutdown()
    DllClose($MiscDLL)
    EndIf

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

    Func _PaintRecursiv($hGetterBitmap, $hSetterBitmap, $iX, $iY, $iW, $iH)
    Local $KonvertingTimer = TimerInit()
    Local $OneSecondTimer = $KonvertingTimer
    Local $ColorTolerance = Round(($Tolerance / 100) * 255)
    Local $SetterBitmapData = _GDIPlus_BitmapLockBits($hSetterBitmap, 0, 0, $iW, $iH, $GDIP_ILMWRITE, $GDIP_PXF32RGB)
    Local $GetterBitmapData = _GDIPlus_BitmapLockBits($hGetterBitmap, 0, 0, $iW, $iH, $GDIP_ILMREAD, $GDIP_PXF32RGB)
    Local $SetterScan0 = DllStructGetData($SetterBitmapData, "Scan0")
    Local $GetterScan0 = DllStructGetData($GetterBitmapData, "Scan0")
    Local $Stride = DllStructGetData($SetterBitmapData, "Stride") ; Anzahl der Pixel in einer Reihe
    Local $Color, $Red, $Green, $Blue, $RedDiff, $GreenDiff, $BlueDiff, $GetterPixelData, $PixelChecked[$iW * $iH], $PixelToCheck[2][2] = [[1, ''], [$iX, $iY]], $Zaehler = 0
    $GetterPixelData = DllStructCreate("dword", $GetterScan0 + ($iY * $Stride) + ($iX * 4))
    $SetterPixelData = DllStructCreate("dword", $SetterScan0 + ($iY * $Stride) + ($iX * 4))
    $Color = DllStructGetData($GetterPixelData, 1)
    $Red = _ColorGetRed($Color)
    $Green = _ColorGetGreen($Color)
    $Blue = _ColorGetBlue($Color)
    Local $TargetColor[3] = [$Red, $Green, $Blue]
    ConsoleWrite("->Sucht rekursiv nach Pixeln... " &@CRLF &">Zielfarbe: " &$TargetColor[0] &" " &$TargetColor[1] &" " &$TargetColor[2] &" von " &$iX &"|" &$iY &", die Zielfarbe darf um " &$ColorTolerance &" abweichen." &@CRLF)
    DllStructSetData($SetterPixelData, 1, BitOR($Blue, BitShift($Green, -8), BitShift($Red, -16)))
    $Zaehler += 1
    While $PixelToCheck[0][0] > 0
    $iX = $PixelToCheck[$PixelToCheck[0][0]][0]
    $iY = $PixelToCheck[$PixelToCheck[0][0]][1]
    If $iX >= 0 And $iX < $iW And $iY >= 0 And $iY < $iH And $PixelChecked[($iY * $iW) + $iX] = '' Then
    $SetterPixelData = DllStructCreate("dword", $SetterScan0 + ($iY * $Stride) + ($iX * 4))
    $GetterPixelData = DllStructCreate("dword", $GetterScan0 + ($iY * $Stride) + ($iX * 4))
    $Color = DllStructGetData($GetterPixelData, 1)
    $Red = _ColorGetRed($Color)
    $Green = _ColorGetGreen($Color)
    $Blue = _ColorGetBlue($Color)
    $RedDiff = Abs($TargetColor[0] - $Red)
    $GreenDiff = Abs($TargetColor[1] - $Green)
    $BlueDiff = Abs($TargetColor[2] - $Blue)
    If $RedDiff <= $ColorTolerance And $GreenDiff <= $ColorTolerance And $BlueDiff <= $ColorTolerance Then
    DllStructSetData($SetterPixelData, 1, BitOR($Blue, BitShift($Green, -8), BitShift($Red, -16)))
    $PixelToCheck[0][0] += 7
    ReDim $PixelToCheck[$PixelToCheck[0][0] + 1][2]
    $i = -7

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

    For $x = $iX To $iX + 1
    For $y = $iY - 1 To $iY + 1
    If $y <> $iY Or $x <> $iX Then
    If $PixelChecked[($y * $iW) + $x] = '' Then
    $PixelToCheck[$PixelToCheck[0][0] + $i][0] = $x
    $PixelToCheck[$PixelToCheck[0][0] + $i][1] = $y
    Else
    ReDim $PixelToCheck[$PixelToCheck[0][0]][2]
    $PixelToCheck[0][0] -= 1
    EndIf
    $i += 1
    EndIf
    Next
    Next

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

    $Zaehler += 1
    Else
    ReDim $PixelToCheck[$PixelToCheck[0][0]][2]
    $PixelToCheck[0][0] -= 1
    EndIf
    $PixelChecked[($iY * $iW) + $iX] = True
    Else
    ReDim $PixelToCheck[$PixelToCheck[0][0]][2]
    $PixelToCheck[0][0] -= 1
    EndIf
    If TimerDiff($OneSecondTimer) >= 1000 Then
    ConsoleWrite(">" &$Zaehler &" gefärbte Pixel. Letzte Differenzen: " &$RedDiff &" " &$GreenDiff &" " &$BlueDiff &", zu prüfende Pixel: " &$PixelToCheck[0][0] &@CRLF)
    $OneSecondTimer = TimerInit()
    EndIf
    WEnd
    _GDIPlus_BitmapUnlockBits($hSetterBitmap, $SetterBitmapData)
    _GDIPlus_BitmapUnlockBits($hGetterBitmap, $GetterBitmapData)
    ConsoleWrite("+>Fertig... Verstrichene Zeit: " &Round(TimerDiff($KonvertingTimer) / 1000, 2) &"s, gefärbte Pixel: " &$Zaehler &@CRLF)
    EndFunc

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

    Func _GreyScale($hBitmap, $iX, $iY, $iW, $iH)
    ConsoleWrite("->Konvertiert in Grautöne..." &@CRLF)
    Local $KonvertingTimer = TimerInit()
    Local $OneSecondTimer = $KonvertingTimer
    Local $BitmapData = _GDIPlus_BitmapLockBits($hBitmap, $iX, $iY, $iW, $iH, BitOR($GDIP_ILMREAD, $GDIP_ILMWRITE), $GDIP_PXF32RGB)
    Local $Stride = DllStructGetData($BitmapData, "Stride") ; Stride ist der Offset von einer Reihe zur nächsten
    Local $Width = DllStructGetData($BitmapData, "Width") ; Anzahl der Spalten
    Local $Height = DllStructGetData($BitmapData, "Height") ; Anzahl der Reihen
    Local $Scan0 = DllStructGetData($BitmapData, "Scan0") ; Die Bilddaten im Speicher
    Local $PixelData, $Color, $Luma
    For $row = 0 To $Height - 1 ; Reihe für Reihe
    For $col = 0 To $Width - 1 ; Spalte für Spalte
    ; lese Farbinformation des aktuellen Pixels(Spalte,Reihe) aus
    $PixelData = DllStructCreate("dword", $Scan0 + ($row * $Stride) + ($col * 4))
    $Color = DllStructGetData($PixelData, 1)
    ; berechne Grauwert
    $Luma = _ColorGetRed($Color) * 0.3 + _ColorGetGreen($Color) * 0.59 + _ColorGetBlue($Color) * 0.11
    ; Rot Grün und Blau wert werden jeweils auf den berechneten Grauwert gesetzt
    DllStructSetData($PixelData, 1, BitOR($Luma, BitShift($Luma, -8), BitShift($Luma, -16)))
    Next
    If TimerDiff($OneSecondTimer) >= 1000 Then
    ConsoleWrite(">" &Round(($row + 1) / ($Height / 100)) &"%" &@CRLF)
    $OneSecondTimer = TimerInit()
    EndIf
    Next
    _GDIPlus_BitmapUnlockBits($hBitmap, $BitmapData)
    ConsoleWrite("+>Fertig... Verstrichene Zeit: " &Round(TimerDiff($KonvertingTimer) / 1000, 2) &"s" &@CRLF)
    EndFunc ;==>_GreyScale

    [/autoit]
  • Alternative zu rekursiver Funktion

    • KingLoL
    • 25. Februar 2013 um 19:06

    Bei mir hängt der jezz leider in einer Endlosschleife, hab das Skript mal ein paar minuten laufen lassen:

    Spoiler anzeigen
    [autoit]

    Func _GDIPlus_FloodFillIter2(ByRef $hGetterBitmap, ByRef $hSetterBitmap, $iX, $iY) ;coded by UEZ 2013-01-13
    ConsoleWrite("Färbe mit Toleranz " &$Tolerance &"%..." &@CRLF)
    Local $KonvertingTimer = TimerInit()
    Local $OneSecondTimer = $KonvertingTimer
    Local $ColorTolerance = Round(($Tolerance / 100) * 255)
    Local $aResult = DllCall($ghGDIPDll, "uint", "GdipGetImageDimension", "handle", $hGetterBitmap, "float*", 0, "float*", 0)
    Local $iW = $aResult[2], $iH = $aResult[3]
    If BitOR($iX < 0, $iY < 0, $iX > $iW - 1, $iY > $iH - 1) Then Return SetError(1, 0, 0)
    Local $x, $y, $RedDiff, $GreenDiff, $BlueDiff,$i = 1, $Zaehler = 0
    Local $oD = ObjCreate('Scripting.Dictionary')
    $oD.Add($i, $iX & ";" & $iY) ;push
    $i += 1

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

    $aResult = DllCall($ghGDIPDll, "uint", "GdipBitmapGetPixel", "handle", $hGetterBitmap, "int", $iX, "int", $iY, "uint*", 0)
    Local $Color = $aResult[4]
    Local $Red = _ColorGetRed($Color)
    Local $Green = _ColorGetGreen($Color)
    Local $Blue = _ColorGetBlue($Color)
    Local $TargetColor[3] = [$Red, $Green, $Blue]

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

    While $oD.Count > 0
    $sPoint = $oD.Item($i - 1)
    $oD.Remove($i - 1) ;pop
    $i -= 1
    $x = Int(StringRegExpReplace($sPoint, "(\d+);\d+", "$1"))
    $y = Int(StringRegExpReplace($sPoint, "\d+;(\d+)", "$1"))
    If BitOR($x < 0, $y < 0, $x > $iW - 1, $y > $iH - 1) Then ContinueLoop
    $aResult = DllCall($ghGDIPDll, "uint", "GdipBitmapGetPixel", "handle", $hGetterBitmap, "int", $x, "int", $y, "uint*", 0)
    $Color = $aResult[4]
    $Red = _ColorGetRed($Color)
    $Green = _ColorGetGreen($Color)
    $Blue = _ColorGetBlue($Color)
    $RedDiff = Abs($TargetColor[0] - $Red)
    $GreenDiff = Abs($TargetColor[1] - $Green)
    $BlueDiff = Abs($TargetColor[2] - $Blue)
    If $RedDiff <= $ColorTolerance And $GreenDiff <= $ColorTolerance And $BlueDiff <= $ColorTolerance Then
    DllCall($ghGDIPDll, "uint", "GdipBitmapSetPixel", "handle", $hSetterBitmap, "int", $x, "int", $y, "uint", $Color)
    $oD.Add($i, $x + 1 & ";" & $y) ;push
    $i += 1
    $oD.Add($i, $x & ";" & $y + 1) ;push
    $i += 1
    $oD.Add($i, $x - 1 & ";" & $y) ;push
    $i += 1
    $oD.Add($i, $x & ";" & $y - 1) ;push
    $i += 1
    $Zaehler += 1
    EndIf
    If TimerDiff($OneSecondTimer) >= 1000 Then
    ConsoleWrite($Zaehler &" gefärbte Pixel. Letzte Differenzen: " &$RedDiff &" " &$GreenDiff &" " &$BlueDiff &@CRLF)
    $OneSecondTimer = TimerInit()
    EndIf
    WEnd
    ConsoleWrite("Fertig... Verstrichene Zeit: " &Round(TimerDiff($KonvertingTimer) / 1000, 2) &"s, gefärbte Pixel: " &$Zaehler &@CRLF)
    $oD = 0
    Return 1
    EndFunc ;==>_GDIPlus_FloodFillIter2

    [/autoit]
  • Alternative zu rekursiver Funktion

    • KingLoL
    • 25. Februar 2013 um 18:04

    Hi,
    ich arbeite gerade an einem Programm, dass von einem bestimmten Pixel aus in einem Bild nach außen hin scannt (wie die Zauberstab Funktion in Paint.NET). Allerdings fällt mir keine Alternative zu meiner jetzigen Funktion ein:

    [autoit]

    Func _ScanColor($iX, $iY, $iW, $iH)
    Local $SetterPixelData, $GetterPixelData, $Color, $Red, $Green, $Blue, $RedDiff, $GreenDiff, $BlueDiff
    For $row = $iY - 1 To $iY + 1 ; Reihe für Reihe
    For $col = $iX - 1 To $iX + 1 ; Spalte für Spalte
    If $PixelChecked[($row * $iW) + $col] = '' Then
    $SetterPixelData = DllStructCreate("dword", $SetterScan0 + ($row * $Stride) + ($col * 4))
    $GetterPixelData = DllStructCreate("dword", $GetterScan0 + ($row * $Stride) + ($col * 4))
    $Color = DllStructGetData($GetterPixelData, 1)
    $Red = _ColorGetRed($Color)
    $Green = _ColorGetGreen($Color)
    $Blue = _ColorGetBlue($Color)
    $RedDiff = Abs($TargetColor[0] - $Red)
    $GreenDiff = Abs($TargetColor[1] - $Green)
    $BlueDiff = Abs($TargetColor[2] - $Blue)
    If $RedDiff <= $ColorTolerance And $GreenDiff <= $ColorTolerance And $BlueDiff <= $ColorTolerance Then
    DllStructSetData($SetterPixelData, 1, BitOR($Blue, BitShift($Green, -8), BitShift($Red, -16)))
    $Zaehler += 1
    $PixelChecked[($row * $iW) + $col] = True
    _ScanColor($col, $row, $iW, $iH)
    Else
    $PixelChecked[($row * $iW) + $col] = True
    EndIf
    EndIf
    Next
    Next
    If TimerDiff($OneSecondTimer) >= 1000 Then
    ConsoleWrite($Zaehler &" gefärbte Pixel. Letzte Differenzen: " &$RedDiff &" " &$GreenDiff &" " &$BlueDiff &@CRLF)
    $OneSecondTimer = TimerInit()
    EndIf
    EndFunc

    [/autoit]
  • Zahlen in Inputbox tiefstellen

    • KingLoL
    • 4. Februar 2013 um 15:38

    cool danke =)

  • Zahlen in Inputbox tiefstellen

    • KingLoL
    • 3. Februar 2013 um 17:51

    Also ich hab grade gemerkt, dass kein weg daran vorbeiführt das Rich-Edit zu benutzen. Nun müsste ich allerdings im Vorgegeben Text im Rich-Edit die Tiefgestellten Zahlen verwenden. Weiß jemand wie das geht?

  • Zahlen in Inputbox tiefstellen

    • KingLoL
    • 3. Februar 2013 um 17:42

    hab ich auch grade gemerkt, dass weder im ASCII noch im ASCI-Zeichensatz die Tiefgestellten Zahlen enthalten sind, nur die ersten 3 hochgestellten :/ welchen Zeichensatz benutzt Rich-Edit?

  • Zahlen in Inputbox tiefstellen

    • KingLoL
    • 3. Februar 2013 um 17:16

    Hey,
    ich suche eine Möglichkeit, Zahlen in einer Inputbox tieferzustellen.
    In den meisten fällen geht das ja mit ALT + 832 + <ZAHL>, aber nicht in der Inputbox, da kommt immer "é" raus. Hat jemand ne Idee?

  • Interaktiver Desktophintergrund

    • KingLoL
    • 3. Februar 2013 um 17:12

    ich hab windows 7 :( naja dann muss ich wohl darauf verzichten

  • Interaktiver Desktophintergrund

    • KingLoL
    • 1. Februar 2013 um 17:13

    Hey,

    wie der Titel schon sagt, möchte ich einen Interaktiven Desktophintergrund haben, also einen Desktop der sich permanent veränder, aber nicht meine Klicks beeinflusst. Ich hab schonmal was gefunden, aber das dirkete ändern vom Hintergrund geht da nur über die Registry mit DATEIEN. Also müsst ich sozusagen dauernd screenshots von der GUI nehmen, das is aber zu langsam und aufwendig =(


    hat jemand ne Idee ? =)


    grüße, KingLoL

  • Desktop-Snake

    • KingLoL
    • 25. März 2012 um 17:58
    Zitat

    KingLoL
    Ich weiß es ist keine Pflicht, aber mach doch bitte mal einen screenshot und poste ihn hier.
    Ich finde es immer blöd wenn man sich erst alles runterladen muss um zu sehen wie es aussieht.
    währe sehr nett :rolleyes:

    mfg Yellow

    Dein Wunsch ist mir Befehl :D ich habs oben als .gif animation eingefügt =)

    Cheater Dieter wenn man sich beißt ist es zu Ende, dann stehen deine Punkte noch da und du kannst das Programm mit ESC beenden...

  • Desktop-Snake

    • KingLoL
    • 19. März 2012 um 21:17

    danke für die Kritik, hab alles nach deinen Wünschen geändert =)

  • Desktop-Snake

    • KingLoL
    • 19. März 2012 um 20:44

    Hi,

    mir war am Wochende langweilig und habe schnell mal ein normales Snake-Spiel programmiert.
    Das wäre warscheinlich nich postwürdig, deshalb habe ich gedacht ich machs für den Desktop, also tadaa da isses :D

    Viel Spaß beim spielen, ich hoffe es gibt keine bugs

    Download

    [Blockierte Grafik: http://img37.imageshack.us/img37/7171/desktopsnake.gif]

    Skript:

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Res_requestedExecutionLevel=asInvoker
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

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

    #include <WinAPI.au3>
    #include <GDIPlus.au3>
    #include <GUIConstantsEx.au3>
    #include <SliderConstants.au3>
    #include <Misc.au3>

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

    $widthBlocks = 20
    $heightBlocks = 20
    $Speed = 100 - IniRead("Settings.ini", "Settings", "Speed", 35)
    $Style = IniRead("Settings.ini", "Settings", "Style", 3)
    $Menu = "MainMenu"

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

    Dim $Snake[2][3]
    Dim $Food[1][2]
    Dim $SnakePicsH[3]
    Dim $SnakePicsV[3]
    Dim $SnakeKopf[4]
    Dim $SnakeEcke[4][3]
    Dim $SnakeEnde[4][3]

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

    $Snake[0][0] = 10
    $Snake[0][1] = 10

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

    $Snake[1][0] = 10
    $Snake[1][1] = 11
    $Snake[1][2] = 0

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

    $Food[0][0] = Random(0, 19, 1)
    $Food[0][1] = Random(0, 19, 1)
    $Richtung = "Oben"

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

    _GDIPlus_Startup()
    $Gui = GUICreate("Desktop-Snake", 600, 600)
    GUISetState()
    $graphic = _GDIPlus_GraphicsCreateFromHWND($Gui)
    $bitmap = _GDIPlus_BitmapCreateFromGraphics(600, 600, $graphic)
    $buffer = _GDIPlus_ImageGetGraphicsContext($bitmap)

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

    For $i = 0 To 3
    $SnakeKopf[$i] = _GDIPlus_ImageLoadFromFile(@ScriptDir &"\src\Head_" &$i &".png")
    Next
    For $i = 0 To 2
    $SnakePicsH[$i] = _GDIPlus_ImageLoadFromFile(@ScriptDir &"\src\Snake_Horizontal_" &$i &".png")
    Next
    For $i = 0 To 2
    $SnakePicsV[$i] = _GDIPlus_ImageLoadFromFile(@ScriptDir &"\src\Snake_Vertical_" &$i &".png")
    Next
    For $i = 0 To 2
    For $a = 0 To 3
    $SnakeEcke[$a][$i] = _GDIPlus_ImageLoadFromFile(@ScriptDir &"\src\Snake_Edge_" &$i &"_" &$a &".png")
    Next
    Next
    For $i = 0 To 2
    For $a = 0 To 3
    $SnakeEnde[$a][$i] = _GDIPlus_ImageLoadFromFile(@ScriptDir &"\src\Snake_End_" &$i &"_" &$a &".png")
    Next
    Next

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

    $MenuPic = _GDIPlus_ImageLoadFromFile(@ScriptDir &"\src\Menu.png")
    $OptionsPic = _GDIPlus_ImageLoadFromFile(@ScriptDir &"\src\Options.png")
    $HighscoresPic = _GDIPlus_ImageLoadFromFile(@ScriptDir &"\src\Highscores.png")
    $FoodPic = _GDIPlus_ImageLoadFromFile(@ScriptDir &"\src\Food.png")
    $Fail = _GDIPlus_ImageLoadFromFile(@ScriptDir &"\src\FAIL.png")
    $Pen = _GDIPlus_PenCreate(0xFFFFFFFF, 3)

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

    $Timer = TimerInit()
    While 1 ;KI PLAYING IN THE MENU :D
    $GUIGetMsg = GUIGetMsg(1)
    If $GUIGetMsg[0] = $GUI_EVENT_CLOSE Then
    _Exit(0)
    ElseIf $GUIGetMsg[0] = $GUI_EVENT_PRIMARYDOWN Then
    If $GUIGetMsg[3] > 195 And $GUIGetMsg[3] < 395 And $GUIGetMsg[4] > 200 And $GUIGetMsg[4] < 250 And $Menu = "MainMenu" Then ;START
    ExitLoop
    ElseIf $GUIGetMsg[3] > 195 And $GUIGetMsg[3] < 395 And $GUIGetMsg[4] > 270 And $GUIGetMsg[4] < 320 And $Menu = "MainMenu" Then ;HIGHSCORES
    $Menu = "Highscores"
    ElseIf $GUIGetMsg[3] > 195 And $GUIGetMsg[3] < 395 And $GUIGetMsg[4] > 335 And $GUIGetMsg[4] < 385 And $Menu = "MainMenu" Then ;OPTIONEN
    $Menu = "Options"
    _GDIPlus_GraphicsClear($buffer, 0xFF000000)
    _GDIPlus_GraphicsDrawImage($buffer, $OptionsPic, 0, 0)
    _GDIPlus_GraphicsDrawImage($graphic, $bitmap, 0, 0)
    _GDIPlus_GraphicsClear($buffer, 0xFF000000)

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

    $Ipt_Speed = GUICtrlCreateSlider(184, 112, 288, 25)
    $Ipt_Style = GUICtrlCreateSlider(184, 152, 289, 25)
    GUICtrlSetLimit(-1, 3, 0)
    $Ipt_Height = GUICtrlCreateSlider(184, 192, 113, 25)
    GUICtrlSetLimit(-1, 80, 10)
    $Ipt_Width = GUICtrlCreateSlider(376, 192, 97, 25)
    GUICtrlSetLimit(-1, 80, 10)

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

    GUICtrlSetData($Ipt_Speed, 100 - IniRead("Settings.ini", "Settings", "Speed", 35))
    GUICtrlSetData($Ipt_Style, IniRead("Settings.ini", "Settings", "Style", 3))
    GUICtrlSetData($Ipt_Width, IniRead("Settings.ini", "Settings", "Width", 20))
    GUICtrlSetData($Ipt_Height, IniRead("Settings.ini", "Settings", "Height", 20))
    ElseIf $GUIGetMsg[3] > 475 And $GUIGetMsg[3] < 585 And $GUIGetMsg[4] > 520 And $GUIGetMsg[4] < 580 And $Menu = "Highscores" Then ;BACK TO MENU
    $Menu = "MainMenu"
    ElseIf $GUIGetMsg[3] > 10 And $GUIGetMsg[3] < 210 And $GUIGetMsg[4] > 540 And $GUIGetMsg[4] < 590 And $Menu = "Options" Then ;BACK TO MENU
    $Menu = "MainMenu"
    GUICtrlDelete($Ipt_Speed)
    GUICtrlDelete($Ipt_Style)
    GUICtrlDelete($Ipt_Width)
    GUICtrlDelete($Ipt_Height)
    ElseIf $GUIGetMsg[3] > 390 And $GUIGetMsg[3] < 590 And $GUIGetMsg[4] > 540 And $GUIGetMsg[4] < 590 And $Menu = "Options" Then ;SAVE AND BACK TO MENU
    $Menu = "MainMenu"

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

    $Speed = GUICtrlRead($Ipt_Speed)
    $Style = GUICtrlRead($Ipt_Style)

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

    IniWrite("Settings.ini", "Settings", "Speed", 100 - $Speed)
    IniWrite("Settings.ini", "Settings", "Style", $Style)
    IniWrite("Settings.ini", "Settings", "Width", 20)
    IniWrite("Settings.ini", "Settings", "Height", 20)

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

    GUICtrlDelete($Ipt_Speed)
    GUICtrlDelete($Ipt_Style)
    GUICtrlDelete($Ipt_Width)
    GUICtrlDelete($Ipt_Height)
    EndIf
    EndIf

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

    If TimerDiff($Timer) >= $Speed Then
    If $Food[0][0] < $Snake[0][0] Or 19 - $Food[0][0] < $Food[0][0] - $Snake[0][0] Then
    If $Richtung <> "Rechts" Then $Richtung = "Links"
    ElseIf $Food[0][1] < $Snake[0][1] Or 19 - $Food[0][1] < $Food[0][1] - $Snake[0][1] Then
    If $Richtung <> "Unten" Then $Richtung = "Oben"
    ElseIf $Food[0][0] > $Snake[0][0] Or 19 - $Food[0][0] < $Food[0][0] - $Snake[0][0] Then
    If $Richtung <> "Links" Then $Richtung = "Rechts"
    ElseIf $Food[0][1] > $Snake[0][1] Or 19 - $Food[0][1] < $Food[0][1] - $Snake[0][1] Then
    If $Richtung <> "Oben" Then $Richtung = "Unten"
    EndIf

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

    For $i = (UBound($Snake) - 1) To 1 Step -1
    $Snake[$i][0] = $Snake[$i - 1][0]
    $Snake[$i][1] = $Snake[$i - 1][1]
    Next

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

    If $Richtung = "Links" Then
    If $Snake[0][0] = 0 Then $Snake[0][0] = 20
    $Snake[0][0] -= 1
    ElseIf $Richtung = "Oben" Then
    If $Snake[0][1] = 0 Then $Snake[0][1] = 20
    $Snake[0][1] -= 1
    ElseIf $Richtung = "Rechts" Then
    If $Snake[0][0] = 19 Then $Snake[0][0] = -1
    $Snake[0][0] += 1
    ElseIf $Richtung = "Unten" Then
    If $Snake[0][1] = 19 Then $Snake[0][1] = -1
    $Snake[0][1] += 1
    EndIf

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

    If $Snake[0][0] = $Food[0][0] And $Snake[0][1] = $Food[0][1] Then
    $Food[0][0] = Random(0, 19, 1)
    $Food[0][1] = Random(0, 19, 1)
    ReDim $Snake[UBound($Snake) + 1][3]
    If $Style = 3 Then
    $Snake[UBound($Snake) - 1][2] = Random(0, 2, 1)
    Else
    $Snake[UBound($Snake) - 1][2] = $Style
    EndIf
    $Snake[UBound($Snake) - 1][0] = $Snake[UBound($Snake) - 2][0]
    $Snake[UBound($Snake) - 1][1] = $Snake[UBound($Snake) - 2][1]
    EndIf

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

    For $i = 1 To UBound($Snake) - 1
    If $Snake[0][0] = $Snake[$i][0] And $Snake[0][1] = $Snake[$i][1] Then
    Sleep(500)
    ReDim $Snake[2][3]
    $Snake[0][0] = 10
    $Snake[0][1] = 10

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

    $Snake[1][0] = 10
    $Snake[1][1] = 11
    $Snake[1][2] = 0
    ExitLoop
    EndIf
    Next
    _GDIPlus_GraphicsDrawImageRect($buffer, $FoodPic, $Food[0][0] * 30, $Food[0][1] * 30, 30, 30)

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

    If $Richtung = "Links" Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeKopf[3], $Snake[0][0] * 30, $Snake[0][1] * 30)
    ElseIf $Richtung = "Oben" Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeKopf[0], $Snake[0][0] * 30, $Snake[0][1] * 30)
    ElseIf $Richtung = "Rechts" Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeKopf[1], $Snake[0][0] * 30, $Snake[0][1] * 30)
    ElseIf $Richtung = "Unten" Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeKopf[2], $Snake[0][0] * 30, $Snake[0][1] * 30)
    EndIf

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

    For $i = 1 To UBound($Snake) - 2
    If $Snake[$i - 1][0] = $Snake[$i][0] + 1 And $Snake[$i + 1][1] = $Snake[$i][1] - 1 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEcke[0][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i - 1][0] = $Snake[$i][0] + 1 And $Snake[$i + 1][1] = $Snake[$i][1] + 1 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEcke[1][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i - 1][0] = $Snake[$i][0] - 1 And $Snake[$i + 1][1] = $Snake[$i][1] + 1 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEcke[2][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i - 1][0] = $Snake[$i][0] - 1 And $Snake[$i + 1][1] = $Snake[$i][1] - 1 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEcke[3][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)

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

    ElseIf $Snake[$i + 1][0] = $Snake[$i][0] + 1 And $Snake[$i - 1][1] = $Snake[$i][1] - 1 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEcke[0][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i + 1][0] = $Snake[$i][0] + 1 And $Snake[$i - 1][1] = $Snake[$i][1] + 1 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEcke[1][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i + 1][0] = $Snake[$i][0] - 1 And $Snake[$i - 1][1] = $Snake[$i][1] + 1 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEcke[2][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i + 1][0] = $Snake[$i][0] - 1 And $Snake[$i - 1][1] = $Snake[$i][1] - 1 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEcke[3][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)

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

    ElseIf $Snake[$i - 1][0] = 0 And $Snake[$i][0] = 19 And $Snake[$i + 1][1] = $Snake[$i][1] - 1 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEcke[0][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i - 1][0] = 0 And $Snake[$i][0] = 19 And $Snake[$i + 1][1] = $Snake[$i][1] + 1 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEcke[1][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i - 1][0] = 19 And $Snake[$i][0] = 0 And $Snake[$i + 1][1] = $Snake[$i][1] + 1 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEcke[2][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i - 1][0] = 19 And $Snake[$i][0] = 0 And $Snake[$i + 1][1] = $Snake[$i][1] - 1 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEcke[3][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)

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

    ElseIf $Snake[$i + 1][0] = 0 And $Snake[$i][0] = 19 And $Snake[$i - 1][1] = $Snake[$i][1] - 1 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEcke[0][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i + 1][0] = 0 And $Snake[$i][0] = 19 And $Snake[$i - 1][1] = $Snake[$i][1] + 1 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEcke[1][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i + 1][0] = 19 And $Snake[$i][0] = 0 And $Snake[$i - 1][1] = $Snake[$i][1] + 1 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEcke[2][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i + 1][0] = 19 And $Snake[$i][0] = 0 And $Snake[$i - 1][1] = $Snake[$i][1] - 1 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEcke[3][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)

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

    ElseIf $Snake[$i - 1][0] = $Snake[$i][0] + 1 And $Snake[$i][1] = 0 And $Snake[$i + 1][1] = 19 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEcke[0][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i - 1][0] = $Snake[$i][0] + 1 And $Snake[$i][1] = 19 And $Snake[$i + 1][1] = 0 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEcke[1][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i - 1][0] = $Snake[$i][0] - 1 And $Snake[$i][1] = 19 And $Snake[$i + 1][1] = 0 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEcke[2][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i - 1][0] = $Snake[$i][0] - 1 And $Snake[$i][1] = 0 And $Snake[$i + 1][1] = 19 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEcke[3][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)

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

    ElseIf $Snake[$i + 1][0] = $Snake[$i][0] + 1 And $Snake[$i][1] = 0 And $Snake[$i - 1][1] = 19 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEcke[0][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i + 1][0] = $Snake[$i][0] + 1 And $Snake[$i][1] = 19 And $Snake[$i - 1][1] = 0 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEcke[1][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i + 1][0] = $Snake[$i][0] - 1 And $Snake[$i][1] = 19 And $Snake[$i - 1][1] = 0 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEcke[2][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i + 1][0] = $Snake[$i][0] - 1 And $Snake[$i][1] = 0 And $Snake[$i - 1][1] = 19 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEcke[3][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)

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

    Else
    If $Snake[$i - 1][1] = $Snake[$i][1] Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakePicsH[$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    Else
    _GDIPlus_GraphicsDrawImage($buffer, $SnakePicsV[$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    EndIf
    EndIf
    Next

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

    $SnakeLengh = UBound($Snake) - 1
    If $Snake[$SnakeLengh - 1][0] = $Snake[$SnakeLengh][0] + 1 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEnde[0][$Snake[$SnakeLengh][2]], $Snake[$SnakeLengh][0] * 30, $Snake[$SnakeLengh][1] * 30)
    ElseIf $Snake[$SnakeLengh - 1][1] = $Snake[$SnakeLengh][1] + 1 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEnde[1][$Snake[$SnakeLengh][2]], $Snake[$SnakeLengh][0] * 30, $Snake[$SnakeLengh][1] * 30)
    ElseIf $Snake[$SnakeLengh - 1][0] = $Snake[$SnakeLengh][0] - 1 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEnde[2][$Snake[$SnakeLengh][2]], $Snake[$SnakeLengh][0] * 30, $Snake[$SnakeLengh][1] * 30)
    ElseIf $Snake[$SnakeLengh - 1][1] = $Snake[$SnakeLengh][1] - 1 Then
    _GDIPlus_GraphicsDrawImage($buffer, $SnakeEnde[3][$Snake[$SnakeLengh][2]], $Snake[$SnakeLengh][0] * 30, $Snake[$SnakeLengh][1] * 30)
    EndIf

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

    If $Menu = "MainMenu" Then
    _GDIPlus_GraphicsDrawImage($buffer, $MenuPic, 0, 0)
    _GDIPlus_GraphicsDrawImage($graphic, $bitmap, 0, 0)
    ElseIf $Menu = "Highscores" Then
    _GDIPlus_GraphicsDrawImage($buffer, $HighscoresPic, 0, 0)
    _GDIPlus_GraphicsDrawImage($graphic, $bitmap, 0, 0)
    ElseIf $Menu = "Options" Then
    _GDIPlus_GraphicsDrawRect($buffer, 0, 0, 599, 599, $Pen)
    _GDIPlus_GraphicsDrawImageRect($graphic, $bitmap, 200, 280, 204, 204)

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

    $Speed = GUICtrlRead($Ipt_Speed)
    $Style = GUICtrlRead($Ipt_Style)
    EndIf
    _GDIPlus_GraphicsClear($buffer, 0xFF000000)
    $Timer = TimerInit()
    EndIf
    WEnd

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

    _GDIPlus_GraphicsDispose($graphic)
    _GDIPlus_GraphicsDispose($buffer)
    _GDIPlus_BitmapDispose($bitmap)
    _GDIPlus_PenDispose($Pen)
    GUIDelete($Gui)

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

    Global $ScreenDc, $dc, $tSize, $pSize, $tSource, $pSource, $tBlend, $pBlend, $tPoint, $pPoint, $gdibitmap
    Global $title = "Desktop-Snake"
    Global $widthBlocks = IniRead("Settings.ini", "Settings", "Width", 20)
    Global $heightBlocks = IniRead("Settings.ini", "Settings", "Height", 20)
    Global $width = $widthBlocks * 30
    Global $height = $heightBlocks * 30
    Global $Speed = 100 - IniRead("Settings.ini", "Settings", "Speed", 35)
    Global $Style = IniRead("Settings.ini", "Settings", "Style", 3)

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

    Global $hWnd = GUICreate($title, $width, $height, -1, -1, 0x80000000, BitOR(0x00000080, 0x00080000, 0x00000008))
    GUISetState()

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

    Global $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    Global $hBitmap = _GDIPlus_BitmapCreateFromGraphics($width, $height, $hGraphic)
    Global $backbuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)

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

    $ScreenDc = _WinAPI_GetDC($hWnd)
    $dc = _WinAPI_CreateCompatibleDC($ScreenDc)
    $tSize = DllStructCreate($tagSIZE)
    $pSize = DllStructGetPtr($tSize)
    DllStructSetData($tSize, "X", $width)
    DllStructSetData($tSize, "Y", $height)
    $tSource = DllStructCreate($tagPOINT)
    $pSource = DllStructGetPtr($tSource)
    $tBlend = DllStructCreate($tagBLENDFUNCTION)
    $pBlend = DllStructGetPtr($tBlend)
    DllStructSetData($tBlend, "Alpha", 255)
    DllStructSetData($tBlend, "Format", 1)
    $tPoint = DllStructCreate($tagPOINT)
    $pPoint = DllStructGetPtr($tPoint)
    DllStructSetData($tPoint, "X", 0)
    DllStructSetData($tPoint, "Y", 0)

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

    ReDim $Snake[2][3]

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

    $Snake[0][0] = 10
    $Snake[0][1] = 10

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

    $Snake[1][0] = 10
    $Snake[1][1] = 11
    $Snake[1][2] = 0

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

    $Food[0][0] = Random(0, $widthBlocks - 1, 1)
    $Food[0][1] = Random(0, $heightBlocks - 1, 1)

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

    $Score = 0
    $Richtung = "Oben"

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

    While 1
    If GUIGetMsg() = $GUI_EVENT_CLOSE Then _Exit()
    If _IsPressed(25) And $Richtung <> "Rechts" Then
    $Richtung = "Links"
    ElseIf _IsPressed(26) And $Richtung <> "Unten" Then
    $Richtung = "Oben"
    ElseIf _IsPressed(27) And $Richtung <> "Links" Then
    $Richtung = "Rechts"
    ElseIf _IsPressed(28) And $Richtung <> "Oben" Then
    $Richtung = "Unten"
    EndIf

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

    For $i = (UBound($Snake) - 1) To 1 Step -1
    $Snake[$i][0] = $Snake[$i - 1][0]
    $Snake[$i][1] = $Snake[$i - 1][1]
    Next

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

    If $Richtung = "Links" Then
    If $Snake[0][0] = 0 Then $Snake[0][0] = $widthBlocks
    $Snake[0][0] -= 1
    ElseIf $Richtung = "Oben" Then
    If $Snake[0][1] = 0 Then $Snake[0][1] = $heightBlocks
    $Snake[0][1] -= 1
    ElseIf $Richtung = "Rechts" Then
    If $Snake[0][0] = $widthBlocks - 1 Then $Snake[0][0] = -1
    $Snake[0][0] += 1
    ElseIf $Richtung = "Unten" Then
    If $Snake[0][1] = $heightBlocks - 1 Then $Snake[0][1] = -1
    $Snake[0][1] += 1
    EndIf

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

    If $Snake[0][0] = $Food[0][0] And $Snake[0][1] = $Food[0][1] Then
    $Score += 50
    $Food[0][0] = Random(0, $widthBlocks - 1, 1)
    $Food[0][1] = Random(0, $heightBlocks - 1, 1)
    ReDim $Snake[UBound($Snake) + 1][3]
    If $Style = 3 Then
    $Snake[UBound($Snake) - 1][2] = Random(0, 2, 1)
    Else
    $Snake[UBound($Snake) - 1][2] = $Style
    EndIf
    $Snake[UBound($Snake) - 1][0] = $Snake[UBound($Snake) - 2][0]
    $Snake[UBound($Snake) - 1][1] = $Snake[UBound($Snake) - 2][1]
    EndIf

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

    For $i = 1 To UBound($Snake) - 1
    If $Snake[0][0] = $Snake[$i][0] And $Snake[0][1] = $Snake[$i][1] Then
    $Highscore = IniRead("Settings.ini", "Settings", "Highscore", 0)
    If $Score > $Highscore Then $Highscore = $Score
    IniWrite("Settings.ini", "Settings", "Highscore", $Highscore)
    _GDIPlus_GraphicsDrawImageRect($backbuffer, $Fail, 25, 0, 547, 600)
    _GDIPlus_GraphicsDrawString($backbuffer, "Score: " &$Score &" Punkte", 230, 500, "Goudy Stout", 12)
    _GDIPlus_GraphicsDrawString($backbuffer, "Highscore: " &$Highscore &" Punkte", 230, 530, "Goudy Stout", 12)
    _UpDate()
    _GDIPlus_GraphicsClear($backbuffer, 0x00000000)
    While GUIGetMsg() <> $GUI_EVENT_CLOSE
    WEnd
    _Exit()
    EndIf
    Next
    _GDIPlus_GraphicsDrawImageRect($backbuffer, $FoodPic, $Food[0][0] * 30, $Food[0][1] * 30, 30, 30)

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

    If $Richtung = "Links" Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeKopf[3], $Snake[0][0] * 30, $Snake[0][1] * 30)
    ElseIf $Richtung = "Oben" Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeKopf[0], $Snake[0][0] * 30, $Snake[0][1] * 30)
    ElseIf $Richtung = "Rechts" Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeKopf[1], $Snake[0][0] * 30, $Snake[0][1] * 30)
    ElseIf $Richtung = "Unten" Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeKopf[2], $Snake[0][0] * 30, $Snake[0][1] * 30)
    EndIf

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

    For $i = 1 To UBound($Snake) - 2
    If $Snake[$i - 1][0] = $Snake[$i][0] + 1 And $Snake[$i + 1][1] = $Snake[$i][1] - 1 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEcke[0][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i - 1][0] = $Snake[$i][0] + 1 And $Snake[$i + 1][1] = $Snake[$i][1] + 1 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEcke[1][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i - 1][0] = $Snake[$i][0] - 1 And $Snake[$i + 1][1] = $Snake[$i][1] + 1 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEcke[2][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i - 1][0] = $Snake[$i][0] - 1 And $Snake[$i + 1][1] = $Snake[$i][1] - 1 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEcke[3][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)

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

    ElseIf $Snake[$i + 1][0] = $Snake[$i][0] + 1 And $Snake[$i - 1][1] = $Snake[$i][1] - 1 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEcke[0][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i + 1][0] = $Snake[$i][0] + 1 And $Snake[$i - 1][1] = $Snake[$i][1] + 1 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEcke[1][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i + 1][0] = $Snake[$i][0] - 1 And $Snake[$i - 1][1] = $Snake[$i][1] + 1 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEcke[2][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i + 1][0] = $Snake[$i][0] - 1 And $Snake[$i - 1][1] = $Snake[$i][1] - 1 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEcke[3][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)

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

    ElseIf $Snake[$i - 1][0] = 0 And $Snake[$i][0] = $widthBlocks - 1 And $Snake[$i + 1][1] = $Snake[$i][1] - 1 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEcke[0][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i - 1][0] = 0 And $Snake[$i][0] = $widthBlocks - 1 And $Snake[$i + 1][1] = + 1 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEcke[1][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i - 1][0] = $widthBlocks - 1 And $Snake[$i][0] = 0 And $Snake[$i + 1][1] = $Snake[$i][1] + 1 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEcke[2][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i - 1][0] = $widthBlocks - 1 And $Snake[$i][0] = 0 And $Snake[$i + 1][1] = $Snake[$i][1] - 1 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEcke[3][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)

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

    ElseIf $Snake[$i + 1][0] = 0 And $Snake[$i][0] = $widthBlocks - 1 And $Snake[$i - 1][1] = $Snake[$i][1] - 1 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEcke[0][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i + 1][0] = 0 And $Snake[$i][0] = $widthBlocks - 1 And $Snake[$i - 1][1] = + 1 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEcke[1][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i + 1][0] = $widthBlocks - 1 And $Snake[$i][0] = 0 And $Snake[$i - 1][1] = $Snake[$i][1] + 1 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEcke[2][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i + 1][0] = $widthBlocks - 1 And $Snake[$i][0] = 0 And $Snake[$i - 1][1] = $Snake[$i][1] - 1 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEcke[3][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)

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

    ElseIf $Snake[$i - 1][0] = $Snake[$i][0] + 1 And $Snake[$i][1] = 0 And $Snake[$i + 1][1] = $heightBlocks - 1 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEcke[0][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i - 1][0] = $Snake[$i][0] + 1 And $Snake[$i][1] = $heightBlocks - 1 And $Snake[$i + 1][1] = 0 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEcke[1][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i - 1][0] = $Snake[$i][0] - 1 And $Snake[$i][1] = $heightBlocks - 1 And $Snake[$i + 1][1] = 0 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEcke[2][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i - 1][0] = $Snake[$i][0] - 1 And $Snake[$i][1] = 0 And $Snake[$i + 1][1] = $heightBlocks - 1 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEcke[3][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)

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

    ElseIf $Snake[$i + 1][0] = $Snake[$i][0] + 1 And $Snake[$i][1] = 0 And $Snake[$i - 1][1] = $heightBlocks - 1 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEcke[0][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i + 1][0] = $Snake[$i][0] + 1 And $Snake[$i][1] = $heightBlocks - 1 And $Snake[$i - 1][1] = 0 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEcke[1][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i + 1][0] = $Snake[$i][0] - 1 And $Snake[$i][1] = $heightBlocks - 1 And $Snake[$i - 1][1] = 0 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEcke[2][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    ElseIf $Snake[$i + 1][0] = $Snake[$i][0] - 1 And $Snake[$i][1] = 0 And $Snake[$i - 1][1] = $heightBlocks - 1 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEcke[3][$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)

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

    Else
    If $Snake[$i - 1][1] = $Snake[$i][1] Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakePicsH[$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    Else
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakePicsV[$Snake[$i][2]], $Snake[$i][0] * 30, $Snake[$i][1] * 30)
    EndIf
    EndIf
    Next

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

    $SnakeLengh = UBound($Snake) - 1
    If $Snake[$SnakeLengh - 1][0] = $Snake[$SnakeLengh][0] + 1 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEnde[0][$Snake[$SnakeLengh][2]], $Snake[$SnakeLengh][0] * 30, $Snake[$SnakeLengh][1] * 30)
    ElseIf $Snake[$SnakeLengh - 1][1] = $Snake[$SnakeLengh][1] + 1 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEnde[1][$Snake[$SnakeLengh][2]], $Snake[$SnakeLengh][0] * 30, $Snake[$SnakeLengh][1] * 30)
    ElseIf $Snake[$SnakeLengh - 1][0] = $Snake[$SnakeLengh][0] - 1 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEnde[2][$Snake[$SnakeLengh][2]], $Snake[$SnakeLengh][0] * 30, $Snake[$SnakeLengh][1] * 30)
    ElseIf $Snake[$SnakeLengh - 1][1] = $Snake[$SnakeLengh][1] - 1 Then
    _GDIPlus_GraphicsDrawImage($backbuffer, $SnakeEnde[3][$Snake[$SnakeLengh][2]], $Snake[$SnakeLengh][0] * 30, $Snake[$SnakeLengh][1] * 30)
    EndIf

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

    _GDIPlus_GraphicsDrawString($backbuffer, $Score &" Punkte", 15, 35, "Goudy Stout", 14)
    _GDIPlus_GraphicsDrawRect($backbuffer, 0, 0, $width - 1, $height - 1)
    _UpDate()
    If _IsPressed(79) Then _GDIPlus_ImageSaveToFile($hBitmap, @DesktopDir &"\Desktopsnake.png") ;Screenshot with F10
    _GDIPlus_GraphicsClear($backbuffer, 0x00000000)
    Sleep($Speed)
    WEnd

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

    Func _Exit($b = 1)
    For $i = 0 To UBound($SnakePicsH) - 1
    _GDIPlus_ImageDispose($SnakeKopf[$i])
    Next
    For $i = 0 To UBound($SnakePicsH) - 1
    _GDIPlus_ImageDispose($SnakePicsH[$i])
    Next
    For $i = 0 To UBound($SnakePicsV) - 1
    _GDIPlus_ImageDispose($SnakePicsV[$i])
    Next
    For $i = 0 To 2
    For $a = 0 To 3
    _GDIPlus_ImageDispose($SnakeEcke[$a][$i])
    Next
    Next
    For $i = 0 To 2
    For $a = 0 To 3
    _GDIPlus_ImageDispose($SnakeEnde[$a][$i])
    Next
    Next
    _GDIPlus_ImageDispose($MenuPic)
    _GDIPlus_ImageDispose($OptionsPic)
    _GDIPlus_ImageDispose($HighscoresPic)
    _GDIPlus_ImageDispose($FoodPic)
    _GDIPlus_ImageDispose($Fail)

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

    If $b = 1 Then
    _WinAPI_DeleteDC($dc)
    _WinAPI_ReleaseDC($hWnd, $ScreenDc)
    _GDIPlus_GraphicsDispose($backbuffer)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_GraphicsDispose($hGraphic)
    GUIDelete($hWnd)
    EndIf
    _GDIPlus_Shutdown()
    Exit
    EndFunc

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

    Func _UpDate()
    $gdibitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)
    _WinAPI_SelectObject($dc, $gdibitmap)
    _WinAPI_UpdateLayeredWindow($hWnd, $ScreenDc, 0, $pSize, $dc, $pSource, 0, $pBlend, 2)
    _WinAPI_DeleteObject($gdibitmap)
    EndFunc

    [/autoit]

    EDIT: Es ist jetzt langsamer und man sieht die Begrenzung =)

    Changelog:

    Spoiler anzeigen

    Version 1.0:
    -Release

    Version 1.1:
    -Neues Snake Design mit korrekter Darstellung der Ecken der Schlange
    -Menü mit KI-Snake, die im Hintergrund spielt
    -Optionen-Menü, in dem man Geschwindigkeit, Style (Grün, Orange, Gelb oder Bunt) und die Höhe und Breite des Spielbereichs wählen kann
    -(Highscores) ;Noch nicht hinzugefügt, aber die Anlage ist bereits da

  • funktionen lösen

    • KingLoL
    • 10. März 2012 um 17:12

    Ich mach StringInString rein, dann kann ich alle nicht-mathematischen befehle entfernen. Mit execute klappts perfekt!
    Danke für die schnelle Hilfe =)

  • funktionen lösen

    • KingLoL
    • 10. März 2012 um 16:57

    Hi,

    ich habe vorhin ein bisschen das Forum durchstöbert und keinen Hilfreichen Beitrag gefunden :/

    Mein Problem:
    Funktionen wie "5*(19/4)^3-33/7" lösen. Gibts keinen Befehl wie "Solve" der einem die Aufgabe einfach löst?

    Ich hoffe ihr könnt mir helfen und danke im vorraus...

    MfG KingLoL

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™