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. qixx

Beiträge von qixx

  • Snake [UPDATE 27.05.]

    • qixx
    • 26. Mai 2010 um 23:32
    Zitat

    eifach mal nach scripten von UEZ suchen und angucken

    Danke, werde ich tun! :)

    Edit:
    Gibt es auch irgendwo ein Grundlagen-Tutorial
    für GDI+, indem man Schritt für Schritt dort
    hineingebracht wird?


    MfG
    qixx

  • Snake [UPDATE 27.05.]

    • qixx
    • 26. Mai 2010 um 13:10

    Danke erstmal für die Antworten. :)

    Habe einen anderen Fehler gefunden,
    warum die Score flackert. Ich hatte in der
    Funktion _SetSnake() (Zeile 152) ein
    GUICtrlSetData($Label_Score, "Spielstand: " & $Score)
    hineingeschrieben. Dieses war völlig ohne Sinn.
    Ich brauche das Skript deshalb ja nicht neu
    hochladen. ;)

    Ich würde es ja gerne in GDI+ umsetzen. Leider
    verstehe ich es aber nicht so wirklich.


    MfG
    qixx

  • Snake [UPDATE 27.05.]

    • qixx
    • 25. Mai 2010 um 18:03

    Danke. :)

    Mit dem Pause-Button hatte ich auch schon überlegt.
    Den Gedanken habe ich aber verworfen, weil man ja
    nicht Pause drücken soll und dann überlegen: "Wie
    mache ich das am besten." ;)
    Kann ich aber einbauen, sollte kein Problem sein.


    MfG
    qixx

  • Snake [UPDATE 27.05.]

    • qixx
    • 25. Mai 2010 um 17:47

    Hallo Leute,

    ich hatte heute Langeweile und habe einfach mal
    das klassische Spiel Snake nachgebaut.

    Screenshot:
    [Blockierte Grafik: http://www.abload.de/thumb/screenshot37il.jpg][Blockierte Grafik: http://www.abload.de/thumb/screenshot28ol8.jpg][Blockierte Grafik: http://www.abload.de/thumb/screenshot3ys1t.jpg]

    Code
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <misc.au3>
    #include <array.au3>

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

    Global $x[1]
    Global $y[1]
    Global $End = True
    Global $up = False ;Wenn True, dann beginnt Snake in die Richtung
    Global $down = False ;Wenn True, dann beginnt Snake in die Richtung
    Global $left = False ;Wenn True, dann beginnt Snake in die Richtung
    Global $right = True ;Wenn True, dann beginnt Snake in die Richtung
    Global $CreateFood = False
    Global $Foodx[1]
    Global $Foody[1]
    Global $Food[1]
    Global $Wallx[1]
    Global $Wally[1]
    Global $Wall[1]
    Global $Snake[2]
    Global $Score = 0
    Global $Speed = 200 ;Umso höher, deso langsamer (Sleep-Zeit)
    Global $FoodScoreChange = 20 ;Wieviel Punkte es gibt, beim Fressen
    $x[0] = 170
    $y[0] = 120
    $FoodScore = $FoodScoreChange

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

    $hGui = GUICreate("SNAKE by qixx", 350, 250)
    GUICtrlCreatePic(@ScriptDir & "\images\field.jpg", 0, 0, 350, 250)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Label_Settings = GUICtrlCreateLabel("Einstellungen", 16, 16, 200, 17)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    GUICtrlSetColor(-1, 0xC8C8C8)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $Label_Score = GUICtrlCreateLabel("Spielstand: 0", 16, 208, 200, 17)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    GUICtrlSetColor(-1, 0xC8C8C8)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $Label_Length = GUICtrlCreateLabel("Schlangenlänge: 1", 16, 224, 200, 17)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    GUICtrlSetColor(-1, 0xC8C8C8)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $Snake[0] = GUICtrlCreatePic(@ScriptDir & "\images\snake.gif", $x[0], $y[0], 10, 10)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    $Button = GUICtrlCreateLabel(" Start", 288, 224, 47, 15)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetBkColor(-1, 0xFFFFFF)

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

    GUICtrlCreateLabel("Wände:", 24, 264, 48, 17)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    $Slider_Wall = GUICtrlCreateSlider(16, 280, 169, 25)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    $Label_Wall = GUICtrlCreateLabel("0", 72, 264, 18, 15)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    GUICtrlCreateLabel("Startrichtung:", 200, 264, 81, 17)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $Radio_Up = GUICtrlCreateRadio("Hoch", 240, 280, 57, 17)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    $Radio_Down = GUICtrlCreateRadio("Runter", 240, 328, 57, 17)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    $Radio_Left = GUICtrlCreateRadio("Links", 200, 304, 49, 17)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    $Radio_Right = GUICtrlCreateRadio("Rechts", 280, 304, 65, 17)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    GUICtrlSetState(-1, $GUI_CHECKED)
    $Button_CreateWalls = GUICtrlCreateButton("Platzieren", 104, 262, 73, 17, $WS_GROUP)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    GUICtrlCreateLabel("Geschwindigkeit:", 24, 312, 101, 17)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $Slider_Speed = GUICtrlCreateSlider(16, 328, 169, 25)
    GUICtrlSetLimit(-1, 3, 0)
    GUICtrlSetData(-1, 1)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    $Label_Speed = GUICtrlCreateLabel("Mittel", 125, 312, 60, 15)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    GUISetState(@SW_SHOW)

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

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

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

    Case $Button
    If GUICtrlRead($Button) = " Start" Then
    $End = False
    _NewGame()
    GUICtrlSetData($Button, " 3")
    Sleep(1000)
    GUICtrlSetData($Button, " 2")
    Sleep(1000)
    GUICtrlSetData($Button, " 1")
    Sleep(1000)
    GUICtrlSetColor($Label_Settings, 0xFFFFFF)
    GUICtrlSetData($Button, " Stop")
    GUICtrlSetColor($Button, 0xC8C8C8)
    $pos = WinGetPos($hGui)
    MouseMove($pos[0] + $pos[2], $pos[1] + $pos[3], 0)
    Else
    $End = True
    GUICtrlSetColor($Label_Settings, 0xC8C8C8)
    GUICtrlSetData($Button, " Start")
    GUICtrlSetColor($Button, 0xFF0000)
    _EndGame()
    EndIf

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

    Case $Label_Settings
    $pos = WinGetPos($hGui)
    If $pos[3] < 300 Then
    WinMove($hGui, "", $pos[0], $pos[1], 356, 385)
    Else
    WinMove($hGui, "", $pos[0], $pos[1], 356, 278)
    EndIf

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

    Case $Button_CreateWalls
    ;Wände erstellen

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

    If UBound($Wall) > 1 Then
    For $i = 0 To UBound($Wall)-1
    GUICtrlDelete($Wall[$i])
    Next
    ReDim $Wall[1]
    ReDim $Wallx[1]
    ReDim $Wally[1]
    EndIf

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

    GUISetState($GUI_DISABLE, $hGui)
    For $i = 0 To GUICtrlRead($Slider_Wall) -1
    ReDim $Wall[UBound($Wall)+1]
    ReDim $Wallx[UBound($Wall)+1]
    ReDim $Wally[UBound($Wall)+1]
    _CreateWall($i)
    Next
    GUISetState($GUI_ENABLE, $hGui)

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

    Case $Slider_Wall
    GUICtrlSetData($Label_Wall, GUICtrlRead($Slider_Wall))

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

    Case $Slider_Speed
    Switch GUICtrlRead($Slider_Speed)
    Case 0
    GUICtrlSetData($Label_Speed, "Langsam")
    $Speed = 300
    $FoodScore = $FoodScoreChange - $FoodScoreChange/2
    Case 1
    GUICtrlSetData($Label_Speed, "Mittel")
    $Speed = 200
    $FoodScore = $FoodScoreChange
    Case 2
    GUICtrlSetData($Label_Speed, "Schnell")
    $Speed = 100
    $FoodScore = $FoodScoreChange + $FoodScoreChange/2
    Case 3
    GUICtrlSetData($Label_Speed, "Sehr Schnell")
    $Speed = 50
    $FoodScore = $FoodScoreChange * 2
    EndSwitch

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

    Case $Radio_Up
    If GUICtrlRead($Radio_Up) = $GUI_CHECKED Then
    $up = True
    $down = False
    $left = False
    $right = False
    EndIf

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

    Case $Radio_Down
    If GUICtrlRead($Radio_Down) = $GUI_CHECKED Then
    $up = False
    $down = True
    $left = False
    $right = False
    EndIf

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

    Case $Radio_Left
    If GUICtrlRead($Radio_Left) = $GUI_CHECKED Then
    $up = False
    $down = False
    $left = True
    $right = False
    EndIf

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

    Case $Radio_Right
    If GUICtrlRead($Radio_Right) = $GUI_CHECKED Then
    $up = False
    $down = False
    $left = False
    $right = True
    EndIf

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

    EndSwitch

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

    If $CreateFood = True Then
    Local $FoodOnWall = False
    $Foodx[0] = Random(0, 34, 1) & "0"
    $Foody[0] = Random(0, 24, 1) & "0"

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

    If UBound($Wall) > 1 Then
    For $i = 0 To UBound($Wall)-1
    If $Foodx[0] = $Wallx[$i] And $Foody[0] = $Wally[$i] Then ;Wenn Futter auf Wand erscheint
    $FoodOnWall = True
    EndIf
    Next
    EndIf

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

    If $FoodOnWall = False Then ;Wenn Futter nicht auf Wand, Futter setzen ; Sonst nochmal durchführen ($CreateFood = True)
    $Food[0] = GUICtrlCreatePic(@ScriptDir & "\images\food.gif", $Foodx[0], $Foody[0], 10, 10)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    GUICtrlSetState(-1, $GUI_ENABLE)
    $CreateFood = False
    EndIf
    EndIf

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

    If $End = False Then
    If _IsPressed(26)Then
    If $down = False Then
    $up = True
    $down = False
    $left = False
    $right = False
    EndIf
    ElseIf _IsPressed(28) Then
    If $up = False Then
    $up = False
    $down = True
    $left = False
    $right = False
    EndIf
    ElseIf _IsPressed(25) Then
    If $right = False Then
    $up = False
    $down = False
    $left = True
    $right = False
    EndIf
    ElseIf _IsPressed(27) Then
    If $left = False Then
    $up = False
    $down = False
    $left = False
    $right = True
    EndIf
    EndIf

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

    _SetSnake()

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

    ;Futter fressen
    For $i = 0 To UBound($Food)-1
    If $x[0] = $Foodx[$i] And $y[0] = $Foody[$i] Then
    GUICtrlDelete($Food[$i])
    $Score += $FoodScore
    GUICtrlSetData($Label_Score, "Spielstand: " & $Score)
    _LongerSnake()
    EndIf
    Next
    EndIf

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

    WEnd

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

    Func _SetSnake()
    If UBound($x) > 0 Then
    For $i = UBound($x)-1 To 1 Step -1
    $x[$i] = $x[$i-1]
    Next
    For $i = UBound($y)-1 To 1 Step -1
    $y[$i] = $y[$i-1]
    Next
    EndIf

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

    If $End = False Then

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

    If $up = True Then
    $y[0] -= 10
    ElseIf $down = True Then
    $y[0] += 10
    ElseIf $left = True Then
    $x[0] -= 10
    ElseIf $right = True Then
    $x[0] += 10
    EndIf

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

    ;Rand getroffen
    If $x[0] < 0 Or $x[0] > 340 Or $y[0] < 0 Or $y[0] > 240 Then
    _EndGame()
    Return
    EndIf

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

    ;Wand getroffen
    If UBound($Wall) > 1 Then
    For $i = 0 To UBound($Wall)
    If $x[0] = $Wallx[$i] And $y[0] = $Wally[$i] Then
    _EndGame()
    Return
    EndIf
    Next
    EndIf

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

    ;Snake berührt sich selbst
    If UBound($Snake) > 2 Then
    For $i = 1 To UBound($Snake)-2
    If $x[0] = $x[$i] And $y[0] = $y[$i] Then
    _EndGame()
    Return
    EndIf
    Next
    EndIf

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

    $End = False
    For $i = 0 To UBound($Snake)-2
    GUICtrlSetPos($Snake[$i], $x[$i], $y[$i])
    Next
    Sleep($Speed)
    EndIf
    EndFunc

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

    Func _LongerSnake()
    $CreateFood = True
    ReDim $Snake[UBound($Snake)+1]
    ReDim $x[UBound($x)+1]
    ReDim $y[UBound($y)+1]
    $Snake[UBound($Snake)-2] = GUICtrlCreatePic(@ScriptDir & "\images\snake.gif", $x[UBound($Snake)-2], $y[UBound($Snake)-2], 10, 10)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    GUICtrlSetData($Label_Length, "Schlangenlänge: " & UBound($Snake)-1)
    EndFunc

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

    Func _NewGame()
    GUICtrlSetState($Radio_Up, $GUI_DISABLE)
    GUICtrlSetState($Radio_Down, $GUI_DISABLE)
    GUICtrlSetState($Radio_Left, $GUI_DISABLE)
    GUICtrlSetState($Radio_Right, $GUI_DISABLE)
    GUICtrlSetState($Slider_Wall, $GUI_DISABLE)
    GUICtrlSetState($Button_CreateWalls, $GUI_DISABLE)
    GUICtrlSetState($Slider_Speed, $GUI_DISABLE)

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

    _GetStartPosition()

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

    If UBound($Snake) > 1 Then
    For $i = 1 To UBound($Snake)-1
    GUICtrlDelete($Snake[$i])
    Next
    EndIf

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

    For $i = 0 To UBound($Food)-1
    GUICtrlDelete($Food[$i])
    Next

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

    Redim $Foodx[1]
    ReDim $Foody[1]
    ReDim $Food[1]
    ReDim $Snake[2]
    ReDim $x[1]
    ReDim $y[1]

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

    $x[0] = 170
    $y[0] = 120
    GUICtrlSetPos($Snake[0], $x[0], $y[0])
    $CreateFood = True

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

    $Score = 0
    GUICtrlSetData($Label_Score, "Spielstand: " & $Score)
    GUICtrlSetData($Label_Length, "Schlangenlänge: 1 ")
    EndFunc

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

    Func _EndGame()
    GUICtrlSetState($Radio_Up, $GUI_ENABLE)
    GUICtrlSetState($Radio_Down, $GUI_ENABLE)
    GUICtrlSetState($Radio_Left, $GUI_ENABLE)
    GUICtrlSetState($Radio_Right, $GUI_ENABLE)
    GUICtrlSetState($Slider_Wall, $GUI_ENABLE)
    GUICtrlSetState($Button_CreateWalls, $GUI_ENABLE)
    GUICtrlSetState($Slider_Speed, $GUI_ENABLE)

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

    $End = True
    If MsgBox(4,"Snake by qixx", "Das Spiel ist vorbei." & @CRLF & @CRLF & "Wände: " & UBound($Wall)-1 & @CRLF & "Geschwindigkeit: " & GUICtrlRead($Label_Speed) & @CRLF & "Deine Punktzahl: " & StringReplace(GUICtrlRead($Label_Score), "Spielstand: ","") & @CRLF & @CRLF & "Nochmal spielen?") = 6 Then
    GUICtrlSetColor($Label_Settings, 0xC8C8C8)
    GUICtrlSetData($Button, " Start")
    GUICtrlSetColor($Button, 0xFF0000)
    _GetStartPosition()

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

    Else
    Exit
    EndIf
    EndFunc

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

    Func _CreateWall($i)
    Local $WallAlreadyExists = False
    $Wallx[$i] = Random(0, 34, 1) & "0"
    $Wally[$i] = Random(0, 24, 1) & "0"

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

    If UBound($Wall) > 1 Then
    For $i2 = 0 To UBound($Wall)-3
    If $Wallx[$i] = $Wallx[$i2] And $Wally[$i] = $Wally[$i2] Then
    $WallAlreadyExists = True
    EndIf
    Next
    EndIf

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

    If $WallAlreadyExists = False Then
    $Wall[$i] = GUICtrlCreatePic(@ScriptDir & "\images\wall.gif", $Wallx[$i], $Wally[$i], 10, 10)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    GUICtrlSetState(-1, $GUI_ENABLE)
    Else
    ConsoleWrite("Wand schon vorhanden - Neuberechnung" & @CRLF)
    _CreateWall($i)
    EndIf
    EndFunc

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

    Func _GetStartPosition()
    If GUICtrlRead($Radio_Up) = $GUI_CHECKED Then
    $up = True
    $down = False
    $left = False
    $right = False
    EndIf
    If GUICtrlRead($Radio_Down) = $GUI_CHECKED Then
    $up = False
    $down = True
    $left = False
    $right = False
    EndIf
    If GUICtrlRead($Radio_Left) = $GUI_CHECKED Then
    $up = False
    $down = False
    $left = True
    $right = False
    EndIf
    If GUICtrlRead($Radio_Right) = $GUI_CHECKED Then
    $up = False
    $down = False
    $left = False
    $right = True
    EndIf
    EndFunc

    [/autoit]



    ToDo:

    - Levels mit Wänden
    - Schwierigkeitsstufen


    Der Code als .au3 und die Bilder sind im Anhang!
    (Aktuellste Version: 1.3)


    MfG
    qixx

    Dateien

    Snake1.3.zip 162,92 kB – 278 Downloads
  • TCP über Internet

    • qixx
    • 16. Mai 2010 um 23:25

    Ok, danke.
    Könntst du mir trotzdem erklären, was
    ich genau machen muss? ;)
    Dann muss ich das halt auf die Weise machen.


    MfG
    qixx

  • TCP über Internet

    • qixx
    • 16. Mai 2010 um 23:12

    Ja, aber es soll jeder hosten können.^^
    Also einfach mit einem Klick ein Spiel
    öffnen und ein Anderer kann connecten. ;)


    MfG
    qixx

  • TCP über Internet

    • qixx
    • 16. Mai 2010 um 23:08

    Einen Dlink DI-304. Ja... ISDN... -.-

    Aber ich denke, damit hat sich das Thema dann
    auch schon erledigt, da ich ein Spiel programmieren
    wollte, dass man mit mehreren gleichzeitig übers
    Internet spielen kann. Aber das ist ja doof, wenn
    jeder immer manuell etwas einstellen muss. ;)

    Achja, danke erstmal. :P


    MfG
    qixx

  • TCP über Internet

    • qixx
    • 16. Mai 2010 um 22:56

    Hallo Leute,
    ich habe in folgendem Thread
    https://autoit.de/index.php?page=Thread&amp;postID=3492
    gesehen, dass gtaspider und Eddy_Erpel eine Lösung
    gefunden haben, wie man TCP über das Internet zum
    Laufen bekommt. Verstanden habe ich da aber nichts.^^

    Gibt es denn eine einfache Möglichkeit, wie man das
    hinbekommen könnte, ohne ein weiteres Programm wie
    Hamachi oder so? ;)

    (Vorkenntnisse mit TCP habe ich, aber es klappte immer
    nur im lokalen Netzwerk)

    MfG
    qixx

  • EXE die sich selbst umprogrammiert?

    • qixx
    • 6. Mai 2010 um 20:53

    Schau' dir mal

    [autoit]

    Execute()

    [/autoit]

    an. Vielleicht hilft dir das weiter. ;)


    MfG
    qixx

  • Projektarbeit ;)

    • qixx
    • 19. April 2010 um 08:03

    Ich werde wohl sowas machen, wie Jonathan vorgeschlagen hat.
    Es sei denn, jemand hat eine bessere Idee. :P


    MfG
    qixx

  • Projektarbeit ;)

    • qixx
    • 18. April 2010 um 18:47
    Zitat von SEuBo

    Die Rand OHG? :D

    Nein, unsere heißt Grossmann OHG. :D
    Und ReWe ist doch total easy. Habe da eine 1 mit
    100%! :D

    @ Jonathan: Das ist eine super Idee! Vielen Dank! :)
    Mal schauen, vielleicht werde ich das verwenden! :thumbup:

  • Projektarbeit ;)

    • qixx
    • 18. April 2010 um 00:14

    Hmm, hört sich net an. :P
    Ist aber irgendwie nicht so das, was wir machen..
    Haben halt z.B. so eine Musterfirma die Papier
    verkauft. Irgendwie etwas dafür suche ich. ;)

    Aber danke für deine Antwort!

    Ich hoffe, mir fällt noch was ein bis zum 21.04. X(


    MfG
    qixx

  • Projektarbeit ;)

    • qixx
    • 15. April 2010 um 11:01

    Hmm.. Sowas eher nicht. Also es geht in die Richtung
    BWL. Also Kaufen, verkaufen, etc. :P
    Wenn du verstehst was ich meine. ;)

    Aber schonmal echt danke für die Idee! :thumbup:

    MfG
    qixx

  • Projektarbeit ;)

    • qixx
    • 15. April 2010 um 10:49

    Ok, aber danke. :)


    MfG
    qixx

  • Projektarbeit ;)

    • qixx
    • 15. April 2010 um 10:42

    Hmm Randbedingungen nicht direkt.
    Aber ich denke mal, dass es am besten wäre,
    wenn das in die "wirtschaftliche Richtung" gehen
    würde. Brutto-Netto-Rechner haben wir z.B. im
    Unterricht gemacht. ;)


    MfG
    qixx

  • Projektarbeit ;)

    • qixx
    • 15. April 2010 um 10:09

    Hi Leute,

    ich muss in ein paar Wochen für die Schule eine
    Projektarbeit anfertigen. Diese ist im Bereich Programmierung
    und ich habe absolut keine Ahnung, was ich machen soll...
    Ich muss zwar in VB programmieren und nicht AutoIt, aber
    das ist ja relativ das gleiche. ;)
    Habt ihr vielleicht eine Idee, was man dort so machen könnte?

    Vielen Dank im Voraus. :thumbup:


    MfG
    qixx

  • Animierte Button

    • qixx
    • 4. April 2010 um 16:32
    Zitat von Rodny_le_lude

    so
    das man nicht für jedes Event ein eignes image File Anlegen muss.

    ;)


    MfG
    qixx

  • CubeTimer 1.0

    • qixx
    • 3. April 2010 um 14:32
    Zitat von Pinguin94


    Mein Rekord liegt bei 1:50min :D

    Meiner liegt bei 53 Sekunden. Beim erstellen des
    Screenshots entstanden. :thumbup:


    MfG
    qixx

  • CubeTimer 1.0

    • qixx
    • 3. April 2010 um 13:51

    [Blockierte Grafik: http://www.abload.de/img/logok4de.jpg] 


    Hallo Leute,

    vielleicht seid ihr auch begeisterte "Rubic Cuber" (Zauberwürfel). ;)
    Ich jedenfalls bin es und habe mir überlegt, dass ich gerne mal
    die Zeit messen möchte, in der ich einen Cube lösen kann. Was
    würde sich dort nicht eher anbieten, als einen Timer zu programmiern. :)
    Das habe ich in die Tat umgesetzt und werde euch das Ergebnis
    jetzt hier präsentieren.

    Was kann der CubeTimer?

    • Zeit messen :P
    • Wertungen anzeigen (Gut, Mittel, Schlecht)
    • Wertungen selbst einstellen


    Todo:

    • Bestzeiten
    • Durchnittszeiten


    Screenshots:

    [Blockierte Grafik: http://www.abload.de/thumb/screenshot1h25n.jpg][Blockierte Grafik: http://www.abload.de/thumb/screenshot2v1h3.jpg]

    Code
    [autoit]


    #cs ----------------------------------------------------------------------------

    AutoIt Version: 3.3.2.0
    Author: qixx (http://www.autoit.de)
    Credits:

    #ce ----------------------------------------------------------------------------

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

    #include <Timers.au3>
    #include <misc.au3>
    #include <GuiListView.au3>
    #include <GuiListBox.au3>
    #include <GuiImageList.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <EditConstants.au3>

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

    Global $MinRed = IniRead(@AppDataDir & "\CubeTimer.ct", "CubeTimer Settings", "MinRed", 2)
    Global $SecRed = IniRead(@AppDataDir & "\CubeTimer.ct", "CubeTimer Settings", "SecRed", 0) ;Ab 2 Minuten ist das Icon Rot
    Global $MinYellow = IniRead(@AppDataDir & "\CubeTimer.ct", "CubeTimer Settings", "MinYellow", 1)
    Global $SecYellow = IniRead(@AppDataDir & "\CubeTimer.ct", "CubeTimer Settings", "SecYellow", 5) ;Ab 1 Minuten und 5 Sekunden ist das Icon Gelb

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

    If IniRead(@AppDataDir & "\CubeTimer.ct", "CubeTimer Settings", "Splash", "1") = "1" Then
    SplashImageOn("Cube Timer", @ScriptDir & "\images\splash.jpg", 460, 267, -1, -1, 3)
    Sleep(3000)
    SplashOff()
    EndIf

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

    $MainGUI = GUICreate("CubeTimer", 510, 202, -1, -1, $WS_POPUP)
    GUISetBkColor(0xFFFFFF)
    GUICtrlCreatePic(@ScriptDir & "\images\bg.jpg", 0, 0, 510, 202)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $LabelTime = GUICtrlCreateLabel("00:00.000", 32, 72, 252, 65)
    GUICtrlSetFont(-1, 45, 800, 0, "Arial Narrow")
    GUICtrlSetColor(-1, 0x34b0ff)
    GUICtrlCreatePic(@ScriptDir & "\images\logo.jpg", 1, 1, 335, 69, -1, $GUI_WS_EX_PARENTDRAG)
    $SettingsButton = GUICtrlCreatePic(@ScriptDir & "\images\settings.jpg", 465, 6, 10, 10)
    $MinimizeButton = GUICtrlCreatePic(@ScriptDir & "\images\line.jpg", 479, 6, 10, 10)
    $ExitButton = GUICtrlCreatePic(@ScriptDir & "\images\x.jpg", 493, 6, 10, 10)

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

    GUICtrlCreateLabel("", 335, 1, 125, 20, -1, $GUI_WS_EX_PARENTDRAG)

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

    $List = GUICtrlCreateListView("", 336, 24, 165, 149, 0x00200000)
    _GUICtrlListView_InsertColumn($List, 0, "Datum", 80)
    _GUICtrlListView_InsertColumn($List, 1, "Zeit", 64)
    $Nr = IniReadSection(@AppDataDir & "\CubeTimer.ct", "CubeTimer Times")
    If IsArray($Nr) Then
    For $i = 1 To $Nr[0][0]
    GUICtrlCreateListViewItem(IniRead(@AppDataDir & "\CubeTimer.ct", "CubeTimer Times", "Time" & $i, ""), $List)
    $AnalysString = StringSplit(IniRead(@AppDataDir & "\CubeTimer.ct", "CubeTimer Times", "Time" & $i, ""), "|")
    _Analysieren($AnalysString[2], $i - 1)
    Next
    EndIf
    $ButtonClear = GUICtrlCreateLabel(" Liste leeren", 428, 176, 73, 15)
    GUICtrlSetBkColor(-1, 0x34b0ff)
    GUICtrlSetColor(-1, 0xffffff)
    GUICtrlCreateLabel("Starten und Stoppen mit 'Leertaste'", 82, 142, 175, 17)
    GUICtrlSetColor(-1, 0xcccccc)
    GUISetState(@SW_SHOW)

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

    $SettingsGUI = GUICreate("Einstellungen", 162, 178, -1, -1, $WS_POPUP)
    GUISetBkColor(0xFFFFFF)
    GUICtrlCreatePic(@ScriptDir & "\images\sbg.jpg", 0, 0, 162, 178)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlCreateLabel("Einstellungen", 8, 5, 146, 17, -1, $GUI_WS_EX_PARENTDRAG)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xcccccc)

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

    ;Grün
    GUICtrlCreateLabel("", 8, 24, 20, 20)
    GUICtrlSetBkColor(-1, 0x00FF00)
    GUICtrlCreateInput("00", 32, 24, 25, 21, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
    GUICtrlCreateLabel(":", 58, 24, 4, 22)
    GUICtrlSetFont(-1, 10, 800, 0, "Arial Black")
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlCreateInput("00", 64, 24, 25, 21, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
    GUICtrlCreateLabel(".", 91, 27, 8, 22)
    GUICtrlSetFont(-1, 10, 800, 0, "Arial Black")
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlCreateInput("000", 96, 24, 33, 21, BitOR($ES_AUTOHSCROLL, $ES_READONLY))

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

    ;Gelb
    GUICtrlCreateLabel("", 8, 48, 20, 20)
    GUICtrlSetBkColor(-1, 0xFFFF00)
    $sYellowMinInput = GUICtrlCreateInput("01", 32, 48, 25, 21, $ES_NUMBER)
    GUICtrlCreateLabel(":", 58, 48, 8, 22)
    GUICtrlSetFont(-1, 10, 800, 0, "Arial Black")
    GUICtrlSetColor(-1, 0x000000)
    $sYellowSecInput = GUICtrlCreateInput("30", 64, 48, 25, 21, $ES_NUMBER)
    GUICtrlCreateLabel(".", 91, 52, 8, 22)
    GUICtrlSetFont(-1, 10, 800, 0, "Arial Black")
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlCreateInput("000", 96, 48, 33, 21, BitOR($ES_AUTOHSCROLL, $ES_READONLY))

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

    ;Rot
    GUICtrlCreateLabel("", 8, 72, 20, 20)
    GUICtrlSetBkColor(-1, 0xFF0000)
    $sRedMinInput = GUICtrlCreateInput("02", 32, 72, 25, 21, $ES_NUMBER)
    GUICtrlCreateLabel(":", 58, 72, 8, 22)
    GUICtrlSetFont(-1, 10, 800, 0, "Arial Black")
    GUICtrlSetColor(-1, 0x000000)
    $sRedSecInput = GUICtrlCreateInput("30", 64, 72, 25, 21, $ES_NUMBER)
    GUICtrlCreateLabel(".", 91, 74, 8, 22)
    GUICtrlSetFont(-1, 10, 800, 0, "Arial Black")
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlCreateInput("000", 96, 72, 33, 21, BitOR($ES_AUTOHSCROLL, $ES_READONLY))

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

    ;Anderes
    $sCheckESC = GUICtrlCreateCheckbox("Mit ESC Beenden", 8, 104, 105, 17)
    If IniRead(@AppDataDir & "\CubeTimer.ct", "CubeTimer Settings", "EndESC", "1") = "1" Then
    GUICtrlSetState($sCheckESC, $GUI_CHECKED)
    Else
    GUICtrlSetState($sCheckESC, $GUI_UNCHECKED)
    EndIf
    $sCheckSplash = GUICtrlCreateCheckbox("Bild beim Starten anzeigen", 8, 120, 145, 17)
    If IniRead(@AppDataDir & "\CubeTimer.ct", "CubeTimer Settings", "Splash", "1") = "1" Then
    GUICtrlSetState($sCheckSplash, $GUI_CHECKED)
    Else
    GUICtrlSetState($sCheckSplash, $GUI_UNCHECKED)
    EndIf

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

    $sOk = GUICtrlCreateLabel(" Ok", 40, 152, 41, 15)
    GUICtrlSetBkColor(-1, 0x34b0ff)
    GUICtrlSetColor(-1, 0xffffff)
    $sCancel = GUICtrlCreateLabel(" Abbrechen", 88, 152, 65, 15)
    GUICtrlSetBkColor(-1, 0x34b0ff)
    GUICtrlSetColor(-1, 0xffffff)

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

    $hImage = _GUIImageList_Create(16, 16, 5, 3)
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($List, 0xFF0000, 16, 16)) ;Rot
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($List, 0xFFFF00, 16, 16)) ;Gelb
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($List, 0x00FF00, 16, 16)) ;Grün
    _GUICtrlListView_SetImageList($List, $hImage, 1)

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

    If IniRead(@AppDataDir & "\CubeTimer.ct", "CubeTimer Settings", "EndESC", "1") = "1" Then
    HotKeySet("{ESC}", "_Exit")
    EndIf

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

    Func _Timer()

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

    Local $starttime = _Timer_Init(), $Min = 0
    While 1
    Sleep(10)
    $time = StringSplit(_Timer_Diff($starttime), ".")
    $Sec = StringTrimRight($time[1], 3) - 60 * $Min

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

    If $Sec = "" Then $Sec = 0
    If $Sec = "60" Then
    $Min = $Min + 1
    EndIf

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

    If StringLen($Min) = 1 Then $Min = "0" & $Min
    If StringLen($Sec) = 1 Then $Sec = "0" & $Sec
    $ElapsedTime = $Min & ":" & $Sec & "." & StringTrimLeft($time[1], StringLen($time[1]) - 3)
    GUICtrlSetData($LabelTime, $ElapsedTime)
    If $Sec > 0 Then
    If _IsPressed(20) Then
    GUICtrlCreateListViewItem(@MDAY & "." & @MON & "." & @YEAR & "|" & $ElapsedTime, $List)
    ClipPut(@AppDataDir & "\CubeTimer.ct")
    For $i = 1 To _GUICtrlListView_GetItemCount($List)
    IniWrite(@AppDataDir & "\CubeTimer.ct", "CubeTimer Times", "Time" & $i, _GUICtrlListView_GetItemText($List, $i - 1, 0) & "|" & _GUICtrlListView_GetItemText($List, $i - 1, 1))
    Next
    _Analysieren($ElapsedTime, _GUICtrlListView_GetItemCount($List) - 1)
    MsgBox(0, "Deine Zeit", "Deine erreichte Zeit: " & $ElapsedTime)
    ExitLoop
    EndIf
    EndIf
    WEnd
    EndFunc ;==>_Timer

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

    Func _Exit()
    Exit
    EndFunc ;==>_Exit

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

    Func _Analysieren($String, $Position)
    ;Farbicon eintragen
    ;Return 0 = Rot
    ;Return 1 = Gelb
    ;Return 2 = Grün

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

    $Analysis = StringSplit($String, ":.")
    For $i = 0 To 9
    If $Analysis[1] = "0" & $i Then $Analysis[1] = $i
    Next
    For $i = 0 To 9
    If $Analysis[2] = "0" & $i Then $Analysis[2] = $i
    Next

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

    If $Analysis[1] >= $MinRed Then
    If $Analysis[2] >= $SecRed Then
    _GUICtrlListView_SetItemImage($List, $Position, 0)
    Return 0
    Else
    If $Analysis[1] >= $MinYellow Then
    If $Analysis[2] >= $SecYellow Then
    _GUICtrlListView_SetItemImage($List, $Position, 1)
    Return 1
    Else
    _GUICtrlListView_SetItemImage($List, $Position, 2)
    Return 2
    EndIf
    EndIf
    EndIf
    Else
    If $Analysis[1] >= $MinYellow Then
    If $Analysis[2] >= $SecYellow Then
    _GUICtrlListView_SetItemImage($List, $Position, 1)
    Return 1
    Else
    _GUICtrlListView_SetItemImage($List, $Position, 2)
    Return 2
    EndIf
    Else
    _GUICtrlListView_SetItemImage($List, $Position, 2)
    Return 2
    EndIf
    EndIf
    EndFunc ;==>_Analysieren

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

    While 1
    Sleep(10)
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case -3
    _Exit()
    Case $ButtonClear
    For $i = 0 To _GUICtrlListView_GetItemCount($List) - 1
    _GUICtrlListView_DeleteItem(GUICtrlGetHandle($List), 0)
    Next
    IniDelete(@AppDataDir & "\CubeTimer.ct", "CubeTimer Times")

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

    Case $SettingsButton
    GUICtrlSetData($sRedMinInput, $MinRed)
    GUICtrlSetData($sRedSecInput, $SecRed)
    GUICtrlSetData($sYellowMinInput, $MinYellow)
    GUICtrlSetData($sYellowSecInput, $SecYellow)
    $pos = WinGetPos($MainGUI)
    WinMove($SettingsGUI, "", $pos[0] + 10, $pos[1] + 10)
    GUISetState(@SW_SHOW, $SettingsGUI)

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

    Case $MinimizeButton
    GUISetState(@SW_MINIMIZE)

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

    Case $ExitButton
    _Exit()

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

    Case $sOk
    $MinRed = GUICtrlRead($sRedMinInput)
    $SecRed = GUICtrlRead($sRedSecInput)
    $MinYellow = GUICtrlRead($sYellowMinInput)
    $SecYellow = GUICtrlRead($sYellowSecInput)

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

    IniWrite(@AppDataDir & "\CubeTimer.ct", "CubeTimer Settings", "MinRed", $MinRed)
    IniWrite(@AppDataDir & "\CubeTimer.ct", "CubeTimer Settings", "SecRed", $SecRed)
    IniWrite(@AppDataDir & "\CubeTimer.ct", "CubeTimer Settings", "MinYellow", $MinYellow)
    IniWrite(@AppDataDir & "\CubeTimer.ct", "CubeTimer Settings", "SecYellow", $SecYellow)

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

    If GUICtrlRead($sCheckESC) = $GUI_CHECKED Then
    HotKeySet("{ESC}", "_Exit")
    IniWrite(@AppDataDir & "\CubeTimer.ct", "CubeTimer Settings", "EndESC", "1")
    Else
    HotKeySet("{ESC}")
    IniWrite(@AppDataDir & "\CubeTimer.ct", "CubeTimer Settings", "EndESC", "0")
    EndIf

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

    If GUICtrlRead($sCheckSplash) = $GUI_CHECKED Then
    IniWrite(@AppDataDir & "\CubeTimer.ct", "CubeTimer Settings", "Splash", "1")
    Else
    IniWrite(@AppDataDir & "\CubeTimer.ct", "CubeTimer Settings", "Splash", "0")
    EndIf

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

    For $i = 0 To _GUICtrlListView_GetItemCount($List) - 1
    _GUICtrlListView_DeleteItem(GUICtrlGetHandle($List), 0)
    Next
    $Nr = IniReadSection(@AppDataDir & "\CubeTimer.ct", "CubeTimer Times")
    If IsArray($Nr) Then
    For $i = 1 To $Nr[0][0]
    GUICtrlCreateListViewItem(IniRead(@AppDataDir & "\CubeTimer.ct", "CubeTimer Times", "Time" & $i, ""), $List)
    $AnalysString = StringSplit(IniRead(@AppDataDir & "\CubeTimer.ct", "CubeTimer Times", "Time" & $i, ""), "|")
    If StringLen($AnalysString[2]) = 1 Then $AnalysString[2] = "0" & $AnalysString[2]
    _Analysieren($AnalysString[2], $i - 1)
    Next
    EndIf
    GUISetState(@SW_HIDE, $SettingsGUI)
    WinActivate($MainGUI)

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

    Case $sCancel
    GUISetState(@SW_HIDE, $SettingsGUI)
    WinActivate($MainGUI)

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

    EndSwitch

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

    If _IsPressed(20) And WinActive($MainGUI) Then ;Leertaste
    _Timer()
    EndIf

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

    If StringLen(GUICtrlRead($sRedMinInput)) > 2 Then
    GUICtrlSetData($sRedMinInput, StringTrimRight(GUICtrlRead($sRedMinInput), StringLen(GUICtrlRead($sRedMinInput)) - 2))
    EndIf
    If StringLen(GUICtrlRead($sRedSecInput)) > 2 Then
    GUICtrlSetData($sRedSecInput, StringTrimRight(GUICtrlRead($sRedSecInput), StringLen(GUICtrlRead($sRedSecInput)) - 2))
    EndIf
    If StringLen(GUICtrlRead($sYellowMinInput)) > 2 Then
    GUICtrlSetData($sYellowMinInput, StringTrimRight(GUICtrlRead($sYellowMinInput), StringLen(GUICtrlRead($sYellowMinInput)) - 2))
    EndIf
    If StringLen(GUICtrlRead($sYellowSecInput)) > 2 Then
    GUICtrlSetData($sYellowSecInput, StringTrimRight(GUICtrlRead($sYellowSecInput), StringLen(GUICtrlRead($sYellowSecInput)) - 2))
    EndIf

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

    WEnd

    [/autoit]

    Im Anhang sind die Bilder und der Code als .au3.


    MfG
    qixx

    Dateien

    CubeTimer.zip 219,49 kB – 303 Downloads
  • Mouse Check Color

    • qixx
    • 31. März 2010 um 19:12

    Bei deinem GUI: Wenn du auf den Button für
    Neue Farbe klickst, dann nimmt der ab dann schon
    die Farbe auf. Denn der Mausklick wird schon abgefragt.
    Da musst du dir was anderes einfallen lassen. ;)
    Du könntest z.B. ein Sleep einbauen. Denn es
    ist unwahrscheinlich, dass jemand den Button ne
    Sekunde lang drückt, o.Ä..

    [autoit]


    Case $hButton2
    GUICtrlSetBkColor($hLabel, 0xFFFFFF)
    Sleep(500)
    $Farbwahl = False

    [/autoit]

    Vielleicht solltest du auch unter der Farbe, die im
    GUI angezeigt wird, den Hexa-Code hinschreiben. ;)


    MfG
    qixx

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™