• Hab mein Vorschlag mal in Code umgesetzt.

    Ist total buggy, komme jetzt zeitlich leider nicht zu mehr.
    Zum veranschaulichen aber vielleicht praktisch.

    edit \ So ists schöner:

    Spoiler anzeigen
    [autoit]


    #include <WindowsConstants.au3>
    #Include <Constants.au3>
    #include <GuiConstants.au3>
    #include <Misc.au3>
    #include <IE.au3>
    #include <Array.au3>
    #include <WinAPI.au3>
    #include <GuiConstantsEx.au3>
    #include <Color.au3>
    #include <IrrlichtPluginUtils.au3>
    #NoTrayIcon

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

    Opt ('MouseCoordMode', 0)

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

    HotKeySet('{Esc}', '_Ende')

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

    Global Const $opt_binken = False
    Global Const $opt_spiegelung = True

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

    Global $Titel = "Spiele Center by Moritz1243 ;-)"

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

    Global Const $INI = @ScriptDir & "\Info.ini"
    Global Const $CONFIG = @ScriptDir & "\Config.ini"
    Global Const $Bilder_dir = @ScriptDir & "\Bilder\"
    Global Const $Spiel_dir = @ScriptDir & "\Verknüpfungen\"

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

    Global $datei[1][1], $icon[1], $name[1], $position, $mouse_pos, $mouse_pos_now, $max, $bewegung, $bewegung_letzte
    Global $button_autostart, $button_exit
    Local $aktuelles_spiel, $letztes_spiel, $spiel_blinken
    Local $Icon_Position[1]
    Global $Icon_Distance = 30

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

    Local $msg
    ;Local $Font = "Comic Sans MS"
    Local $Font = "Arial"

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

    Global $icolor_red = Number(IniRead(@scriptdir & "\config.ini","Config","Hintergrund Farbe Rot",-1))
    Global $icolor_green = Number(IniRead(@scriptdir & "\config.ini","Config","Hintergrund Farbe Gruen",-1))
    Global $icolor_blue = Number(IniRead(@scriptdir & "\config.ini","Config","Hintergrund Farbe Blau",-1))
    If $icolor_red = -1 Then
    IniWrite($CONFIG,"Config","Hintergrund Farbe Rot",64)
    IniWrite($CONFIG,"Config","Hintergrund Farbe Gruen",64)
    IniWrite($CONFIG,"Config","Hintergrund Farbe Blau",255)
    $icolor_red = 64
    $icolor_green = 64
    $icolor_blue = 255
    EndIf

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

    Global $switch[4]

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

    Global $Reload

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

    Global $width = 1024
    Global $height = 600

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

    Global $Flow_type = IniRead($CONFIG,"Config","Flow Type",-1)
    If $Flow_type = -1 Then
    IniWrite($CONFIG,"Config","Flow Type",1)
    $Flow_type = 1
    EndIf

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

    Global $Window_type = IniRead($CONFIG,"Config","Window_type",-1)
    If $Window_type = -1 Then
    IniWrite($CONFIG,"Config","Window_type",1)
    $Window_type = 1
    EndIf

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

    Global $BK_type = IniRead($CONFIG,"Config","BK_type",-1)
    If $BK_type = -1 Then
    IniWrite($CONFIG,"Config","BK_type",1)
    $BK_type = 1
    EndIf

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

    If $Window_type = 0 Then Global $Hwnd = CreateLayeredDevice("SpieleCenter", 0,@DesktopHeight * 1 / 8, @DesktopWidth, @DesktopHeight * 6 / 8,255, 0, 128, 0 )
    If $Window_type = 1 Then Global $Hwnd = CreateDevice($EDT_DIRECT3D9, 1024, 600, 16, 0, 0, 0)
    If $Window_type = 2 Then Global $Hwnd = CreateDevice($EDT_DIRECT3D9, @DesktopWidth,@DesktopHeight, 32, True, 0, 0)
    SetWindowCaption($Titel)
    WinSetOnTop($Hwnd, "", 1 )

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

    Global $Timer_aktive = IniRead($CONFIG,"Config","Timer",-1)
    If $Timer_aktive = -1 Then
    IniWrite($CONFIG,"Config","Timer",1)
    $Timer_aktive = 1
    EndIf

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

    Local $compare[2]

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

    Global $Camera = AddCameraSceneNode(0, 0, 0, 250, 0, 0, 0)

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

    Global $Light1 = AddLightSceneNode( 0, -1000, 1000, -1000, 0, 0, 0, 0 )
    Global $SLight = AddNewSLight( 1, 50, 1, 500, 3000, $ELT_POINT)
    SetSLightSpecularColor( $SLight, 0.1, 0.1, 0.1 )
    SetLightData( $Light1, $SLight )

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

    Global $Light2 = AddLightSceneNode( 0, 1000, 1000, 1000, 0, 0, 0, 0 )
    SetLightData( $Light2, $SLight )

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

    Global $Bilder[1]
    Global $Node[1]
    Global $Node_Back[1]
    Global $Bilder_alpha[1]

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

    Global $search_txt

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

    Global $Info_Text = AddStaticText("", 422, 200, 602, 400); [, Border [, WordWrap [, iParent [, FillBackground ]]]] )
    Global $Button_Einstellungen = AddImage(GetTexture($Bilder_dir & "einstellungen.png"), $width - 58, $height - 58)

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

    draw(0)
    Global $anzahl_spiele
    Spiele_laden()

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

    Global $Particle[1][4]
    Global $Node_Particle[1]
    Global $Anzahl_Particle = 120
    Global $Partikel_onoff = IniRead($CONFIG,"Config","Partikel",-1)
    If $Partikel_onoff = -1 Then
    IniWrite($CONFIG,"Config","Partikel",1)
    $Partikel_onoff = 1
    EndIf

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

    If $Partikel_onoff = 1 Then _particle_create()

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

    ReDim $icon[$max + 1]
    ReDim $name[$max + 1]
    ReDim $Icon_Position[$max + 1]

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

    draw(0)

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

    AdlibEnable("_bus",12)

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

    While True

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

    If WinActive($Titel) Then

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

    If _IsPressed("0D") Then Spiel_starten($aktuelles_spiel)

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

    ; $compare[0] = GUICtrlRead($search)

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

    If $compare[0] <> $compare[1] Then
    $compare[1] = $compare[0]
    ;If $compare[0] <> "search" And $compare[0] <> "" Then

    For $i = 0 To $Max Step 1

    $search_txt = $compare[0]

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

    If StringLeft($datei[$i][2],StringLen($compare[0])) = StringLeft($compare[0],StringLen($compare[0])) Then
    $Bewegung = $Icon_Distance * -$i
    $position = $bewegung
    ;draw($Bewegung)
    $aktuelles_spiel = Int((-$bewegung + 15) / $Icon_Distance)
    If $aktuelles_spiel > $max - 1 Then $aktuelles_spiel = $max - 1
    If $aktuelles_spiel < 0 Then $aktuelles_spiel = 0
    ; GUICtrlSetData($info_titel, $datei[$aktuelles_spiel][2])
    ExitLoop
    EndIf

    Next
    ;EndIf
    EndIf

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

    If _IsPressed ("01") Then

    $mouse_pos_now = MouseGetPos()

    If $mouse_pos_now[0] > $width - 58 And $mouse_pos_now[0] < $width - 10 Then
    If $mouse_pos_now[1] > $height - 58 And $mouse_pos_now[1] < $height - 10 Then einstellungen()
    EndIf

    If Mod(-$Bewegung,$Icon_Distance) = 0 Then
    SetText($info_text,"")
    SetRotation($Node[$aktuelles_spiel],0,0,0)
    EndIf

    $mouse_pos = MouseGetPos(0)
    Local $coll = GetSceneNodeFromScreenCoordinatesBB(MouseGetPos(0),MouseGetPos(1))

    For $i = 0 To $max Step 1
    If $coll = $Node[$i] Or $coll = $Node_Back[$i] Then Spiel_starten($i)
    Next

    Do
    $mouse_pos_now = MouseGetPos(0)

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

    $bewegung = ($mouse_pos_now - $mouse_pos) + $position
    If $bewegung < -($max - 1) * $Icon_Distance Then $bewegung = -($max - 1) * $Icon_Distance
    If $bewegung > 0 Then $bewegung = 0
    ConsoleWrite($bewegung & @CRLF)
    $aktuelles_spiel = Int((-$bewegung + 15) / $Icon_Distance)
    If $aktuelles_spiel > $max - 1 Then $aktuelles_spiel = $max - 1
    If $aktuelles_spiel < 0 Then $aktuelles_spiel = 0

    If $aktuelles_spiel <> $letztes_spiel Then

    $letztes_spiel = $aktuelles_spiel

    EndIf

    If $bewegung <> $bewegung_letzte Then
    $bewegung_letzte = $bewegung
    ConsoleWrite($bewegung & @CRLF)
    draw($Bewegung)
    EndIf

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

    Sleep(5)

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

    Until Not _IsPressed ("01")

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

    $position = $bewegung

    EndIf

    If _IsPressed ("02") Then
    $mouse_pos = MouseGetPos(0)
    Local $coll = GetSceneNodeFromScreenCoordinatesBB(MouseGetPos(0),MouseGetPos(1))

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

    While Mod(-$Bewegung,$Icon_Distance) <> 0
    If Mod(-$Bewegung,$Icon_Distance) < $Icon_Distance / 2 Then
    $Bewegung += 1
    Else
    $Bewegung -= 1
    EndIf
    draw($Bewegung)
    ; ToolTip($Bewegung & " Mod: " & Mod(-$Bewegung,$Icon_Distance) & " < " & $Icon_Distance)
    WEnd
    $aktuelles_spiel = Int((-$bewegung + 15) / $Icon_Distance)
    For $i = 0 To $max Step 1
    If $coll = $Node[$i] Then;-329 49 < 70

    For $deg = 0 To 180 Step 5
    BeginScene(True, True, 0, $icolor_red,$icolor_green,$icolor_blue)
    SetRotation($Node[$aktuelles_spiel],0,$deg,0)
    SceneDraw()
    GuiDraw()
    EndScene()
    Sleep(5)
    Next

    Local $process = StringSplit ($datei[$aktuelles_spiel][0], "\")
    Local $Spielzeit = IniRead(@ScriptDir & "\info.ini","Log",$process[$process[0]],0)
    SetText($info_text,"Spiel: " & $datei[$aktuelles_spiel][2] & @LF _
    & @LF _
    & "Spielzeit: " & _sec_to_time_string($Spielzeit) & @LF _
    & "Gespielt: " & IniRead(@ScriptDir & "\info.ini","Spiele",$datei[$aktuelles_spiel][2],0) - 1 & " mal" & @LF _
    & "Dateipfad: " & $datei[$aktuelles_spiel][0])
    EndIf

    If $coll = $Node_Back[$i] Then
    SetText($info_text,"")
    For $deg = 180 To 360 Step 5
    BeginScene(True, True, 0, $icolor_red,$icolor_green,$icolor_blue)
    SetRotation($Node[$aktuelles_spiel],0,$deg,0)
    SceneDraw()
    GuiDraw()
    EndScene()
    Sleep(5)
    Next
    EndIf
    Next

    EndIf


    If _IsPressed("27") then
    sleep(50)
    ConsoleWrite($bewegung & @CRLF)
    If $bewegung=0 then
    do
    $bewegung -=10
    draw($bewegung)
    until $bewegung= -($max - 1) * $Icon_Distance
    ;draw($bewegung)
    Else
    for $i = 1 to 14
    $bewegung += 5
    Draw($bewegung)
    next
    EndIf

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

    endif

    If _IsPressed("25") then
    sleep(50)
    ConsoleWrite($bewegung & @CRLF)
    If $bewegung=-($max - 1) * $Icon_Distance then
    do
    $bewegung +=10
    draw($bewegung)
    until $bewegung=0
    ;draw($bewegung)
    Else
    for $i = 1 to 14
    $bewegung -= 5
    Draw($bewegung)
    next
    EndIf

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

    endif
    ; draw($Bewegung)

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

    EndIf

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

    Sleep(5)

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

    WEnd

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

    Func Spiele_laden()

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

    Local $search, $desti, $compare

    ; $Ordner = FileSelectFolder("Ordner wählen", "",2)
    ; $Ordner = "C:\Dokumente und Einstellungen\Moritz\Desktop\Spiele"

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

    Local $isearch = FileFindFirstFile($Spiel_dir & "*.lnk")
    If $isearch = -1 Then Return 0

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

    While True
    Local $type = FileFindNextFile($isearch)
    If @error Then ExitLoop
    $anzahl_spiele += 1
    WEnd

    FileClose($search)

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

    $search = FileFindFirstFile($Spiel_dir & "*.lnk")

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

    While 1

    ReDim $datei[$max + 1][5]
    ReDim $Bilder[$max + 1]
    ReDim $Bilder_alpha[$max + 1]
    ReDim $node[$max + 1]
    ReDim $Node_Back[$max + 1]

    $datei[$max][0] = FileFindNextFile($search)
    If @error Then ExitLoop
    $datei[$max][1] = $datei[$max][1]
    $datei[$max][2] = StringTrimRight ($datei[$max][0], 4)

    If IniRead($INI,"Spiele",$datei[$max][2],0) = 0 Then
    $Reload = True
    IniWrite($INI,"Spiele",$datei[$max][2],1)
    EndIf

    If StringRight ($datei[$max][0],3) = "lnk" Then
    $desti = FileGetShortcut($Spiel_dir & $datei[$max][0])
    $datei[$max][0] = $desti[0]
    $datei[$max][1] = $desti[1]
    $datei[$max][3] = $desti[4]
    $datei[$max][4] = $desti[5]
    EndIf

    $Node[$max] = AddCubeSceneNode(100)
    $Node_Back[$max] = AddCubeSceneNode(101,$Node[$max])
    SetMaterialTexture($Node_Back[$max], 0, GetTexture($Bilder_dir & "\back.jpg"))
    SetPosition($Node_Back[$max],0,0,-5)
    SetScale($Node[$max], 1, 1.5, 0.1)
    $Bilder[$max] = GetTexture($Bilder_dir & "\" & $datei[$max][2] & ".jpg")
    SetMaterialTexture($Node[$max], 0, $Bilder[$max])
    SetMaterialFlag($Node[$max], $EMF_LIGHTING, 0 )

    SetScale($Node[$max], 1, 1.5, 0.1)

    ; $Bilder[$max] = _GDIPlus_ImageLoadFromFile($Ordner & "\temp\" & $datei[$max][2] & ".jpg")
    ; $Bilder_alpha[$max] = _GDIPlus_ImageLoadFromFile($Ordner & "\temp\" & $datei[$max][2] & "_alpha.jpg")

    ; MsgBox(0,"",$bilder[$max])

    $max += 1
    ToolTip("Load ... " & Int($max / $anzahl_spiele * 100) & "%")
    WEnd

    ToolTip("")
    ; _ArrayDisplay($datei)

    FileClose($search)

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

    EndFunc

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

    Func Draw($wegi)

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

    BeginScene(True, True, 0, $icolor_red,$icolor_green,$icolor_blue)

    ; $icolor_red = Mod($icolor_red + random(0,5,1),255)
    ; $icolor_green = Mod($icolor_green + random(0,5,1),255)
    ; $icolor_blue = Mod($icolor_blue + random(0,5,1),255)

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

    Local $pi_div_180 = 4 * ATan(1) / 180
    Local $xi, $yi

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

    Local $aktuelles = Int((-$bewegung + 15) / $Icon_Distance)

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

    Switch $flow_type

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

    Case 0

    $Icon_Distance = 30

    For $i = 0 To $max Step 1

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

    $Icon_Position[$i] = $wegi + $i * $Icon_Distance

    If $Icon_Position[$i] > -90 And $Icon_Position[$i] < 90 Then

    SetVisible($Node[$i], 1)

    $xi = Sin (-$Icon_Position[$i] * $pi_div_180) * 200
    $yi = Cos (-$Icon_Position[$i] * $pi_div_180) * 60

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

    SetPosition( $Node[$i], $xi / 2 * 8/10,0,$yi)

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

    Else
    SetVisible($Node[$i], 0)
    EndIf

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

    Next

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

    Case 1

    $Icon_Distance = 70

    For $i = 0 To $max Step 1

    ; If $Icon_Position[$i] > -90 And $Icon_Position[$i] < 0 Then $bewegung += 1

    $Icon_Position[$i] = $wegi + $i * $Icon_Distance

    ; If $i > $aktuelles Then $Icon_Position[$i] += 50
    ; If $i < $aktuelles Then $Icon_Position[$i] -= 50

    ; If $Icon_Position[$i] > -45 And $Icon_Position[$i] < 0 Then
    ; $bewegung += 1
    ; ElseIf $Icon_Position[$i] < 45 And $Icon_Position[$i] > 0 Then
    ; $bewegung -= 1
    ; EndIf

    If $Icon_Position[$i] > -90 And $Icon_Position[$i] < 90 Then

    SetRotation($Node[$i],0,-$Icon_Position[$i],0)
    SetPosition($Node[$i],$Icon_Position[$i],0,(90 - Abs($Icon_Position[$i])) / 2)

    ElseIf $Icon_Position[$i] > 0 Then
    SetRotation($Node[$i],0,-90,0)
    SetPosition($Node[$i],$Icon_Position[$i],0,0)
    Else
    SetRotation($Node[$i],0,90,0)
    SetPosition($Node[$i],$Icon_Position[$i],0,0)
    EndIf


    Next

    EndSwitch

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

    SceneDraw( )
    GuiDraw( )

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

    EndScene( )

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

    EndFunc

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

    Func _Bus()
    BeginScene(True, True, 0, $icolor_red,$icolor_green,$icolor_blue)

    If $BK_type = 1 Then _bk_change_color()
    If $Partikel_onoff = 1 Then _particle()

    SceneDraw()
    GuiDraw()

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

    EndScene()
    EndFunc

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

    Func Spiel_starten($iSpiel)
    If MsgBox(4,"","Wollen Sie " & $datei[$iSpiel][2] & " wirklich starten?") = 6 Then
    IniWrite($INI,"Spiele",$datei[$iSpiel][2],IniRead($INI,"Spiele",$datei[$iSpiel][2],1) + 1)

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

    ShellExecute($datei[$iSpiel][0],"",$datei[$iSpiel][1])
    FileDelete(@scriptdir & "\commandline.cl")
    If $Timer_aktive = 1 Then
    Local $string = StringSplit ($datei[$iSpiel][0], "\")
    FileWrite(@scriptdir & "\commandline.cl",$String[$string[0]])
    ShellExecute("timer.exe","",@ScriptDir)
    EndIf
    Exit
    EndIf
    EndFunc

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

    Func _bk_change_color()

    If $switch[3] = 0 Then
    $switch[3] = 5
    If $switch[0] = 0 Then
    $icolor_red += 1
    Else
    $icolor_red -= 1
    EndIf
    If $icolor_red >= 255 Then
    $icolor_red = 255
    $switch[0] = 1
    EndIf
    If $icolor_red <= 0 Then
    $icolor_red = 0
    $switch[0] = 0
    EndIf
    If $switch[1] = 0 Then
    $icolor_green += 2
    Else
    $icolor_green -= 2
    EndIf
    If $icolor_green >= 255 Then
    $icolor_green = 255
    $switch[1] = 1
    EndIf
    If $icolor_green <= 0 Then
    $icolor_green = 0
    $switch[1] = 0
    EndIf
    If $switch[2] = 0 Then
    $icolor_blue += 3
    Else
    $icolor_blue -= 3
    EndIf
    If $icolor_blue >= 255 Then
    $icolor_blue = 255
    $switch[2] = 1
    EndIf
    If $icolor_blue <= 0 Then
    $icolor_blue = 0
    $switch[2] = 0
    EndIf
    Else
    $switch[3] -= 1
    EndIf

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

    EndFunc

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

    Func Einstellungen()

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

    AdlibDisable()

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

    Local $Gui_Ein = GUICreate("Einstellungen",280,400)

    Local $check_partikel = GUICtrlCreateCheckbox("Partikel",10,10,200,20)
    If IniRead($CONFIG,"Config","Partikel",0) = 1 Then GUICtrlSetState($check_partikel, $GUI_CHECKED)
    Local $check_bkchange = GUICtrlCreateCheckbox("Hintergrundfarbenwechsel",10,50,200,20)
    If IniRead($CONFIG,"Config","BK_type",0) = 1 Then GUICtrlSetState($check_bkchange, $GUI_CHECKED)
    Local $check_timer = GUICtrlCreateCheckbox("Timer",10,90,200,20)
    If IniRead($CONFIG,"Config","Timer",0) = 1 Then GUICtrlSetState($check_timer, $GUI_CHECKED)
    Local $button_save = GUICtrlCreateButton("Speichern",100,300,80,40)

    GUICtrlCreateLabel("BK Farbe",150,135,50,20)
    Local $input_c_red = GUICtrlCreateInput($icolor_red,10,130,40,20)
    Local $input_c_green = GUICtrlCreateInput($icolor_green,60,130,40,20)
    Local $input_c_blue = GUICtrlCreateInput($icolor_blue,110,130,40,20)

    Local $set[4]

    GUISetState(@SW_SHOW)

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

    While True
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $button_save
    If GUICtrlRead($check_partikel) = 4 Then
    $set[0] = 0
    Else
    $set[0] = 1
    EndIf
    IniWrite($CONFIG,"Config","Partikel",$set[0])
    If $Partikel_onoff <> $set[0] Then
    If $Partikel_onoff = 0 Then
    _particle_create()
    Else
    _particle_delete()
    EndIf
    $Partikel_onoff = $set[0]
    EndIf

    If GUICtrlRead($check_bkchange) = 4 Then
    $set[1] = 0
    Else
    $set[1] = 1
    EndIf
    IniWrite($CONFIG,"Config","BK_type",$set[1])
    $BK_type = $set[1]

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

    If GUICtrlRead($check_timer) = 4 Then
    $set[2] = 0
    Else
    $set[2] = 1
    EndIf
    IniWrite($CONFIG,"Config","Timer",$set[2])
    $Timer_aktive = $set[2]

    $icolor_red = Number(GUICtrlRead($input_c_red))
    $icolor_green = Number(GUICtrlRead($input_c_green))
    $icolor_blue = Number(GUICtrlRead($input_c_blue))
    IniWrite(@scriptdir & "\config.ini","Config","Hintergrund Farbe Rot",$icolor_red)
    IniWrite(@scriptdir & "\config.ini","Config","Hintergrund Farbe Gruen",$icolor_green)
    IniWrite(@scriptdir & "\config.ini","Config","Hintergrund Farbe Blau",$icolor_blue)

    EndSwitch
    WEnd
    GUIDelete($Gui_Ein)
    AdlibEnable("_bus",12)
    EndFunc

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

    Func _particle_create()

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

    ReDim $Node_Particle[$Anzahl_Particle]
    ReDim $Particle[$Anzahl_Particle][4]

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

    For $i = 0 To 119 Step 1

    $Node_Particle[$i] = AddCubeSceneNode(Random(1,4,1))
    ; $Node_Particle[$i] = AddSphereSceneNode(Random(1,2,1), 20)
    $particle[$i][0] = Random(-200,200,1)
    $particle[$i][1] = Random(-200,200,1)
    $particle[$i][2] = Random(-200,300,1)
    $particle[$i][3] = Random(1,4,1)
    SetPosition($Node_Particle[$i],$particle[$i][0],$particle[$i][1],-$particle[$i][2])
    Next

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

    EndFunc

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

    Func _particle()

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

    For $i = 0 To UBound($particle) - 1 Step 1

    If $particle[$i][2] < -300 Then ; Wenn es auf der z-achse kleiner also -200 ist
    $particle[$i][0] = Random(-200,200,1)
    $particle[$i][1] = Random(-200,200,1)
    $particle[$i][2] = Random(200,300,1)
    $particle[$i][3] = Random(1,4,1)
    Else
    $particle[$i][2] -= $particle[$i][3]
    EndIf

    SetPosition($Node_Particle[$i],$particle[$i][0],$particle[$i][1],-$particle[$i][2])

    Next

    EndFunc

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

    Func _particle_delete()
    For $i = 0 To UBound($Node_Particle) - 2 Step 1
    Remove($Node_Particle[$i])
    Next
    SetVisible($Node_Particle[UBound($Node_Particle) - 1],0)
    EndFunc

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

    Func _Bild_Suche($iTitel)

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

    _IEErrorHandlerRegister ()

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

    $oIE = _IECreateEmbedded ()
    GUICreate("Embedded Web control Test", 640, 480, _
    (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, _
    $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
    $GUIActiveX = GUICtrlCreateObj($oIE, 10, 40, 600, 360)
    $GUI_Button_Back = GUICtrlCreateButton("Back", 10, 420, 100, 30)
    $GUI_Button_Forward = GUICtrlCreateButton("Forward", 120, 420, 100, 30)
    $GUI_Button_Home = GUICtrlCreateButton("Home", 230, 420, 100, 30)
    $GUI_Button_Stop = GUICtrlCreateButton("Stop", 340, 420, 100, 30)

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

    GUISetState()

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

    _IENavigate ($oIE, "http://images.google.de/")
    $oForm = _IEFormGetObjByName($oIE, "f")
    $oQuery = _IEFormElementGetObjByName($oForm, "q")
    _IEFormElementSetValue($oQuery, $iTitel)
    _IEFormSubmit($oForm)

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $GUI_Button_Home
    _IENavigate ($oIE, "http://images.google.de/")
    Case $msg = $GUI_Button_Back
    _IEAction ($oIE, "back")
    Case $msg = $GUI_Button_Forward
    _IEAction ($oIE, "forward")
    Case $msg = $GUI_Button_Stop
    _IEAction ($oIE, "stop")
    EndSelect
    WEnd

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

    GUIDelete()

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

    EndFunc

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

    Func _sec_to_time_string($isec)
    Local $string = Int($isec / 3600) & " h " & Int(Mod($isec,3600) / 60) & " min " & Mod(Mod($isec,3600),60) & " sec"
    Return $string
    EndFunc

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

    Func _Ende()
    Exit
    EndFunc

    [/autoit]

    2 Mal editiert, zuletzt von nuts (19. November 2009 um 17:56)

  • Sehr gut - wo sind denn da fehler drin? - Es wirkt sehr abgehackt. Aber das lässt sich beheben ;) Es wirkt flüssiger wenn du in Zeile 280 und 299 ne Pause einbaust Sleep(10).


    So habe jetzt das ganze script der funktion angepasst und es funktioniert jetzt einwandfrei :rock: :

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #Include <Constants.au3>
    #include <GuiConstants.au3>
    #include <Misc.au3>
    #include <IE.au3>
    #include <Array.au3>
    #include <WinAPI.au3>
    #include <GuiConstantsEx.au3>
    #include <Color.au3>
    #include <IrrlichtPluginUtils.au3>
    #NoTrayIcon

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

    Opt ('MouseCoordMode', 0)

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

    HotKeySet('{Esc}', '_Ende')

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

    Global Const $opt_binken = False
    Global Const $opt_spiegelung = True

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

    Global $Titel = "Spiele Center by Moritz1243 ;-)"

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

    Global Const $INI = @ScriptDir & "\Info.ini"
    Global Const $CONFIG = @ScriptDir & "\Config.ini"
    Global Const $Bilder_dir = @ScriptDir & "\Bilder\"
    Global Const $Spiel_dir = @ScriptDir & "\Verknüpfungen\"

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

    Global $datei[1][1], $icon[1], $name[1], $position, $mouse_pos, $mouse_pos_now, $max, $bewegung, $bewegung_letzte
    Global $button_autostart, $button_exit
    Local $aktuelles_spiel, $letztes_spiel, $spiel_blinken
    Local $Icon_Position[1]
    Global $Icon_Distance = 30

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

    Local $msg
    ;Local $Font = "Comic Sans MS"
    Local $Font = "Arial"

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

    Global $icolor_red = Number(IniRead(@scriptdir & "\config.ini","Config","Hintergrund Farbe Rot",-1))
    Global $icolor_green = Number(IniRead(@scriptdir & "\config.ini","Config","Hintergrund Farbe Gruen",-1))
    Global $icolor_blue = Number(IniRead(@scriptdir & "\config.ini","Config","Hintergrund Farbe Blau",-1))
    If $icolor_red = -1 Then
    IniWrite($CONFIG,"Config","Hintergrund Farbe Rot",64)
    IniWrite($CONFIG,"Config","Hintergrund Farbe Gruen",64)
    IniWrite($CONFIG,"Config","Hintergrund Farbe Blau",255)
    $icolor_red = 64
    $icolor_green = 64
    $icolor_blue = 255
    EndIf

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

    Global $switch[4]

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

    Global $Reload

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

    Global $width = 1024
    Global $height = 600

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

    Global $Flow_type = IniRead($CONFIG,"Config","Flow Type",-1)
    If $Flow_type = -1 Then
    IniWrite($CONFIG,"Config","Flow Type",1)
    $Flow_type = 1
    EndIf

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

    Global $Window_type = IniRead($CONFIG,"Config","Window_type",-1)
    If $Window_type = -1 Then
    IniWrite($CONFIG,"Config","Window_type",1)
    $Window_type = 1
    EndIf

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

    Global $BK_type = IniRead($CONFIG,"Config","BK_type",-1)
    If $BK_type = -1 Then
    IniWrite($CONFIG,"Config","BK_type",1)
    $BK_type = 1
    EndIf

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

    If $Window_type = 0 Then Global $Hwnd = CreateLayeredDevice("SpieleCenter", 0,@DesktopHeight * 1 / 8, @DesktopWidth, @DesktopHeight * 6 / 8,255, 0, 128, 0 )
    If $Window_type = 1 Then Global $Hwnd = CreateDevice($EDT_DIRECT3D9, 1024, 600, 16, 0, 0, 0)
    If $Window_type = 2 Then Global $Hwnd = CreateDevice($EDT_DIRECT3D9, @DesktopWidth,@DesktopHeight, 32, True, 0, 0)
    SetWindowCaption($Titel)
    WinSetOnTop($Hwnd, "", 1 )

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

    Global $Timer_aktive = IniRead($CONFIG,"Config","Timer",-1)
    If $Timer_aktive = -1 Then
    IniWrite($CONFIG,"Config","Timer",1)
    $Timer_aktive = 1
    EndIf

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

    Local $compare[2]

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

    Global $Camera = AddCameraSceneNode(0, 0, 0, 250, 0, 0, 0)

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

    Global $Light1 = AddLightSceneNode( 0, -1000, 1000, -1000, 0, 0, 0, 0 )
    Global $SLight = AddNewSLight( 1, 50, 1, 500, 3000, $ELT_POINT)
    SetSLightSpecularColor( $SLight, 0.1, 0.1, 0.1 )
    SetLightData( $Light1, $SLight )

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

    Global $Light2 = AddLightSceneNode( 0, 1000, 1000, 1000, 0, 0, 0, 0 )
    SetLightData( $Light2, $SLight )

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

    Global $Bilder[1]
    Global $Node[1]
    Global $Node_Back[1]
    Global $Bilder_alpha[1]

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

    Global $search_txt

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

    Global $Info_Text = AddStaticText("", 422, 200, 602, 400); [, Border [, WordWrap [, iParent [, FillBackground ]]]] )
    Global $Button_Einstellungen = AddImage(GetTexture($Bilder_dir & "einstellungen.png"), $width - 58, $height - 58)

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

    draw(0)
    Global $anzahl_spiele
    Spiele_laden()

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

    Global $Particle[1][4]
    Global $Node_Particle[1]
    Global $Anzahl_Particle = 120
    Global $Partikel_onoff = IniRead($CONFIG,"Config","Partikel",-1)
    If $Partikel_onoff = -1 Then
    IniWrite($CONFIG,"Config","Partikel",1)
    $Partikel_onoff = 1
    EndIf

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

    If $Partikel_onoff = 1 Then _particle_create()

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

    ReDim $icon[$max + 1]
    ReDim $name[$max + 1]
    ReDim $Icon_Position[$max + 1]

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

    draw(0)

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

    AdlibEnable("_bus",12)

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

    While True

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

    If WinActive($Titel) Then

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

    If _IsPressed("0D") Then Spiel_starten($aktuelles_spiel)

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

    ; $compare[0] = GUICtrlRead($search)

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

    If $compare[0] <> $compare[1] Then
    $compare[1] = $compare[0]
    ;If $compare[0] <> "search" And $compare[0] <> "" Then

    For $i = 0 To $Max Step 1

    $search_txt = $compare[0]

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

    If StringLeft($datei[$i][2],StringLen($compare[0])) = StringLeft($compare[0],StringLen($compare[0])) Then
    $Bewegung = $Icon_Distance * -$i
    $position = $bewegung
    ;draw($Bewegung)
    $aktuelles_spiel = Int((-$bewegung + 15) / $Icon_Distance)
    If $aktuelles_spiel > $max - 1 Then $aktuelles_spiel = $max - 1
    If $aktuelles_spiel < 0 Then $aktuelles_spiel = 0
    ; GUICtrlSetData($info_titel, $datei[$aktuelles_spiel][2])
    ExitLoop
    EndIf

    Next
    ;EndIf
    EndIf

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

    If _IsPressed ("01") Then

    $mouse_pos_now = MouseGetPos()

    If $mouse_pos_now[0] > $width - 58 And $mouse_pos_now[0] < $width - 10 Then
    If $mouse_pos_now[1] > $height - 58 And $mouse_pos_now[1] < $height - 10 Then einstellungen()
    EndIf

    If Mod(-$Bewegung,$Icon_Distance) = 0 Then
    SetText($info_text,"")
    SetRotation($Node[$aktuelles_spiel],0,0,0)
    EndIf

    $mouse_pos = MouseGetPos(0)
    Local $coll = GetSceneNodeFromScreenCoordinatesBB(MouseGetPos(0),MouseGetPos(1))

    For $i = 0 To $max Step 1
    If $coll = $Node[$i] Or $coll = $Node_Back[$i] Then Spiel_starten($i)
    Next

    $position = $bewegung

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

    Do
    $mouse_pos_now = MouseGetPos(0)

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

    $bewegung = ($mouse_pos_now - $mouse_pos) + $position
    If $bewegung < -($max - 1) * $Icon_Distance Then $bewegung = -($max - 1) * $Icon_Distance
    If $bewegung > 0 Then $bewegung = 0
    ConsoleWrite($bewegung & @CRLF)
    $aktuelles_spiel = Int((-$bewegung + 15) / $Icon_Distance)
    If $aktuelles_spiel > $max - 1 Then $aktuelles_spiel = $max - 1
    If $aktuelles_spiel < 0 Then $aktuelles_spiel = 0

    If $aktuelles_spiel <> $letztes_spiel Then

    $letztes_spiel = $aktuelles_spiel

    EndIf

    If $bewegung <> $bewegung_letzte Then
    $bewegung_letzte = $bewegung
    ConsoleWrite($bewegung & @CRLF)
    draw($Bewegung)
    EndIf

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

    Sleep(5)

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

    Until Not _IsPressed ("01")

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

    ; $position = $bewegung

    EndIf

    If _IsPressed ("02") Then
    $mouse_pos = MouseGetPos(0)
    Local $coll = GetSceneNodeFromScreenCoordinatesBB(MouseGetPos(0),MouseGetPos(1))

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

    _center_aktuelles_Spiel()

    $aktuelles_spiel = Int((-$bewegung + 15) / $Icon_Distance)
    For $i = 0 To $max Step 1
    If $coll = $Node[$i] Then;-329 49 < 70

    For $deg = 0 To 180 Step 5
    BeginScene(True, True, 0, $icolor_red,$icolor_green,$icolor_blue)
    SetRotation($Node[$aktuelles_spiel],0,$deg,0)
    SceneDraw()
    GuiDraw()
    EndScene()
    Sleep(5)
    Next

    Local $process = StringSplit ($datei[$aktuelles_spiel][0], "\")
    Local $Spielzeit = IniRead(@ScriptDir & "\info.ini","Log",$process[$process[0]],0)
    SetText($info_text,"Spiel: " & $datei[$aktuelles_spiel][2] & @LF _
    & @LF _
    & "Spielzeit: " & _sec_to_time_string($Spielzeit) & @LF _
    & "Gespielt: " & IniRead(@ScriptDir & "\info.ini","Spiele",$datei[$aktuelles_spiel][2],0) - 1 & " mal" & @LF _
    & "Dateipfad: " & $datei[$aktuelles_spiel][0])
    EndIf

    If $coll = $Node_Back[$i] Then
    SetText($info_text,"")
    For $deg = 180 To 360 Step 5
    BeginScene(True, True, 0, $icolor_red,$icolor_green,$icolor_blue)
    SetRotation($Node[$aktuelles_spiel],0,$deg,0)
    SceneDraw()
    GuiDraw()
    EndScene()
    Sleep(5)
    Next
    EndIf
    Next

    EndIf

    If _IsPressed("27") then ; Durchblättern links
    sleep(50)
    _center_aktuelles_Spiel()
    ConsoleWrite($bewegung & @CRLF)
    If $bewegung=0 then
    do
    $bewegung -=10
    draw($bewegung)
    until $bewegung= -($max - 1) * $Icon_Distance
    ;draw($bewegung)
    Else
    for $i = 1 to 10
    $bewegung += $Icon_Distance / 10
    Draw($bewegung)
    Sleep(10)
    next
    EndIf

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

    endif

    If _IsPressed("25") then ; Durchblättern links
    sleep(50)
    _center_aktuelles_Spiel()
    ConsoleWrite($bewegung & @CRLF)
    If $bewegung=-($max - 1) * $Icon_Distance then
    do
    $bewegung +=10
    draw($bewegung)
    until $bewegung=0
    ;draw($bewegung)
    Else
    for $i = 1 to 10
    $bewegung -= $Icon_Distance / 10
    Draw($bewegung)
    Sleep(10)
    next
    EndIf

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

    endif
    ; draw($Bewegung)

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

    EndIf

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

    Sleep(5)

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

    WEnd

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

    Func Spiele_laden()

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

    Local $search, $desti, $compare

    ; $Ordner = FileSelectFolder("Ordner wählen", "",2)
    ; $Ordner = "C:\Dokumente und Einstellungen\Moritz\Desktop\Spiele"

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

    Local $isearch = FileFindFirstFile($Spiel_dir & "*.lnk")
    If $isearch = -1 Then Return 0

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

    While True
    Local $type = FileFindNextFile($isearch)
    If @error Then ExitLoop
    $anzahl_spiele += 1
    WEnd

    FileClose($search)

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

    $search = FileFindFirstFile($Spiel_dir & "*.lnk")

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

    While 1

    ReDim $datei[$max + 1][5]
    ReDim $Bilder[$max + 1]
    ReDim $Bilder_alpha[$max + 1]
    ReDim $node[$max + 1]
    ReDim $Node_Back[$max + 1]

    $datei[$max][0] = FileFindNextFile($search)
    If @error Then ExitLoop
    $datei[$max][1] = $datei[$max][1]
    $datei[$max][2] = StringTrimRight ($datei[$max][0], 4)

    If IniRead($INI,"Spiele",$datei[$max][2],0) = 0 Then
    $Reload = True
    IniWrite($INI,"Spiele",$datei[$max][2],1)
    EndIf

    If StringRight ($datei[$max][0],3) = "lnk" Then
    $desti = FileGetShortcut($Spiel_dir & $datei[$max][0])
    $datei[$max][0] = $desti[0]
    $datei[$max][1] = $desti[1]
    $datei[$max][3] = $desti[4]
    $datei[$max][4] = $desti[5]
    EndIf

    $Node[$max] = AddCubeSceneNode(100)
    $Node_Back[$max] = AddCubeSceneNode(101,$Node[$max])
    SetMaterialTexture($Node_Back[$max], 0, GetTexture($Bilder_dir & "\back.jpg"))
    SetPosition($Node_Back[$max],0,0,-5)
    SetScale($Node[$max], 1, 1.5, 0.1)
    $Bilder[$max] = GetTexture($Bilder_dir & "\" & $datei[$max][2] & ".jpg")
    SetMaterialTexture($Node[$max], 0, $Bilder[$max])
    SetMaterialFlag($Node[$max], $EMF_LIGHTING, 0 )

    SetScale($Node[$max], 1, 1.5, 0.1)

    ; $Bilder[$max] = _GDIPlus_ImageLoadFromFile($Ordner & "\temp\" & $datei[$max][2] & ".jpg")
    ; $Bilder_alpha[$max] = _GDIPlus_ImageLoadFromFile($Ordner & "\temp\" & $datei[$max][2] & "_alpha.jpg")

    ; MsgBox(0,"",$bilder[$max])

    $max += 1
    ToolTip("Load ... " & Int($max / $anzahl_spiele * 100) & "%")
    WEnd

    ToolTip("")
    ; _ArrayDisplay($datei)

    FileClose($search)

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

    EndFunc

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

    Func Draw($wegi)

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

    BeginScene(True, True, 0, $icolor_red,$icolor_green,$icolor_blue)

    ; $icolor_red = Mod($icolor_red + random(0,5,1),255)
    ; $icolor_green = Mod($icolor_green + random(0,5,1),255)
    ; $icolor_blue = Mod($icolor_blue + random(0,5,1),255)

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

    Local $pi_div_180 = 4 * ATan(1) / 180
    Local $xi, $yi

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

    Local $aktuelles = Int((-$bewegung + 15) / $Icon_Distance)

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

    Switch $flow_type

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

    Case 0

    $Icon_Distance = 30

    For $i = 0 To $max Step 1

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

    $Icon_Position[$i] = $wegi + $i * $Icon_Distance

    If $Icon_Position[$i] > -90 And $Icon_Position[$i] < 90 Then

    SetVisible($Node[$i], 1)

    $xi = Sin (-$Icon_Position[$i] * $pi_div_180) * 200
    $yi = Cos (-$Icon_Position[$i] * $pi_div_180) * 60

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

    SetPosition( $Node[$i], $xi / 2 * 8/10,0,$yi)

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

    Else
    SetVisible($Node[$i], 0)
    EndIf

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

    Next

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

    Case 1

    $Icon_Distance = 70

    For $i = 0 To $max Step 1

    ; If $Icon_Position[$i] > -90 And $Icon_Position[$i] < 0 Then $bewegung += 1

    $Icon_Position[$i] = $wegi + $i * $Icon_Distance

    ; If $i > $aktuelles Then $Icon_Position[$i] += 50
    ; If $i < $aktuelles Then $Icon_Position[$i] -= 50

    ; If $Icon_Position[$i] > -45 And $Icon_Position[$i] < 0 Then
    ; $bewegung += 1
    ; ElseIf $Icon_Position[$i] < 45 And $Icon_Position[$i] > 0 Then
    ; $bewegung -= 1
    ; EndIf

    If $Icon_Position[$i] > -90 And $Icon_Position[$i] < 90 Then

    SetRotation($Node[$i],0,-$Icon_Position[$i],0)
    SetPosition($Node[$i],$Icon_Position[$i],0,(90 - Abs($Icon_Position[$i])) / 2)

    ElseIf $Icon_Position[$i] > 0 Then
    SetRotation($Node[$i],0,-90,0)
    SetPosition($Node[$i],$Icon_Position[$i],0,0)
    Else
    SetRotation($Node[$i],0,90,0)
    SetPosition($Node[$i],$Icon_Position[$i],0,0)
    EndIf


    Next

    EndSwitch

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

    SceneDraw( )
    GuiDraw( )

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

    EndScene( )

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

    EndFunc

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

    Func _Bus()
    BeginScene(True, True, 0, $icolor_red,$icolor_green,$icolor_blue)

    If $BK_type = 1 Then _bk_change_color()
    If $Partikel_onoff = 1 Then _particle()

    SceneDraw()
    GuiDraw()

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

    EndScene()
    EndFunc

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

    Func Spiel_starten($iSpiel)
    If MsgBox(4,"","Wollen Sie " & $datei[$iSpiel][2] & " wirklich starten?") = 6 Then
    IniWrite($INI,"Spiele",$datei[$iSpiel][2],IniRead($INI,"Spiele",$datei[$iSpiel][2],1) + 1)

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

    ShellExecute($datei[$iSpiel][0],"",$datei[$iSpiel][1])
    FileDelete(@scriptdir & "\commandline.cl")
    If $Timer_aktive = 1 Then
    Local $string = StringSplit ($datei[$iSpiel][0], "\")
    FileWrite(@scriptdir & "\commandline.cl",$String[$string[0]])
    ShellExecute("timer.exe","",@ScriptDir)
    EndIf
    Exit
    EndIf
    EndFunc

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

    Func _bk_change_color()

    If $switch[3] = 0 Then
    $switch[3] = 5
    If $switch[0] = 0 Then
    $icolor_red += 1
    Else
    $icolor_red -= 1
    EndIf
    If $icolor_red >= 255 Then
    $icolor_red = 255
    $switch[0] = 1
    EndIf
    If $icolor_red <= 0 Then
    $icolor_red = 0
    $switch[0] = 0
    EndIf
    If $switch[1] = 0 Then
    $icolor_green += 2
    Else
    $icolor_green -= 2
    EndIf
    If $icolor_green >= 255 Then
    $icolor_green = 255
    $switch[1] = 1
    EndIf
    If $icolor_green <= 0 Then
    $icolor_green = 0
    $switch[1] = 0
    EndIf
    If $switch[2] = 0 Then
    $icolor_blue += 3
    Else
    $icolor_blue -= 3
    EndIf
    If $icolor_blue >= 255 Then
    $icolor_blue = 255
    $switch[2] = 1
    EndIf
    If $icolor_blue <= 0 Then
    $icolor_blue = 0
    $switch[2] = 0
    EndIf
    Else
    $switch[3] -= 1
    EndIf

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

    EndFunc

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

    Func Einstellungen()

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

    AdlibDisable()

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

    Local $Gui_Ein = GUICreate("Einstellungen",280,400)

    Local $check_partikel = GUICtrlCreateCheckbox("Partikel",10,10,200,20)
    If IniRead($CONFIG,"Config","Partikel",0) = 1 Then GUICtrlSetState($check_partikel, $GUI_CHECKED)
    Local $check_bkchange = GUICtrlCreateCheckbox("Hintergrundfarbenwechsel",10,50,200,20)
    If IniRead($CONFIG,"Config","BK_type",0) = 1 Then GUICtrlSetState($check_bkchange, $GUI_CHECKED)
    Local $check_timer = GUICtrlCreateCheckbox("Timer",10,90,200,20)
    If IniRead($CONFIG,"Config","Timer",0) = 1 Then GUICtrlSetState($check_timer, $GUI_CHECKED)
    Local $button_save = GUICtrlCreateButton("Speichern",100,300,80,40)

    GUICtrlCreateLabel("BK Farbe",150,135,50,20)
    Local $input_c_red = GUICtrlCreateInput($icolor_red,10,130,40,20)
    Local $input_c_green = GUICtrlCreateInput($icolor_green,60,130,40,20)
    Local $input_c_blue = GUICtrlCreateInput($icolor_blue,110,130,40,20)

    Local $set[4]

    GUISetState(@SW_SHOW)

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

    While True
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $button_save
    If GUICtrlRead($check_partikel) = 4 Then
    $set[0] = 0
    Else
    $set[0] = 1
    EndIf
    IniWrite($CONFIG,"Config","Partikel",$set[0])
    If $Partikel_onoff <> $set[0] Then
    If $Partikel_onoff = 0 Then
    _particle_create()
    Else
    _particle_delete()
    EndIf
    $Partikel_onoff = $set[0]
    EndIf

    If GUICtrlRead($check_bkchange) = 4 Then
    $set[1] = 0
    Else
    $set[1] = 1
    EndIf
    IniWrite($CONFIG,"Config","BK_type",$set[1])
    $BK_type = $set[1]

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

    If GUICtrlRead($check_timer) = 4 Then
    $set[2] = 0
    Else
    $set[2] = 1
    EndIf
    IniWrite($CONFIG,"Config","Timer",$set[2])
    $Timer_aktive = $set[2]

    $icolor_red = Number(GUICtrlRead($input_c_red))
    $icolor_green = Number(GUICtrlRead($input_c_green))
    $icolor_blue = Number(GUICtrlRead($input_c_blue))
    IniWrite(@scriptdir & "\config.ini","Config","Hintergrund Farbe Rot",$icolor_red)
    IniWrite(@scriptdir & "\config.ini","Config","Hintergrund Farbe Gruen",$icolor_green)
    IniWrite(@scriptdir & "\config.ini","Config","Hintergrund Farbe Blau",$icolor_blue)

    EndSwitch
    WEnd
    GUIDelete($Gui_Ein)
    AdlibEnable("_bus",12)
    EndFunc

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

    Func _center_aktuelles_Spiel()

    While Mod(-$Bewegung,$Icon_Distance) <> 0
    If Mod(-$Bewegung,$Icon_Distance) < $Icon_Distance / 2 Then
    $Bewegung += 1
    Else
    $Bewegung -= 1
    EndIf
    draw($Bewegung)
    ; ToolTip($Bewegung & " Mod: " & Mod(-$Bewegung,$Icon_Distance) & " < " & $Icon_Distance)
    WEnd

    EndFunc

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

    Func _particle_create()

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

    ReDim $Node_Particle[$Anzahl_Particle]
    ReDim $Particle[$Anzahl_Particle][4]

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

    For $i = 0 To 119 Step 1

    $Node_Particle[$i] = AddCubeSceneNode(Random(1,4,1))
    ; $Node_Particle[$i] = AddSphereSceneNode(Random(1,2,1), 20)
    $particle[$i][0] = Random(-200,200,1)
    $particle[$i][1] = Random(-200,200,1)
    $particle[$i][2] = Random(-200,300,1)
    $particle[$i][3] = Random(1,4,1)
    SetPosition($Node_Particle[$i],$particle[$i][0],$particle[$i][1],-$particle[$i][2])
    Next

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

    EndFunc

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

    Func _particle()

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

    For $i = 0 To UBound($particle) - 1 Step 1

    If $particle[$i][2] < -300 Then ; Wenn es auf der z-achse kleiner also -200 ist
    $particle[$i][0] = Random(-200,200,1)
    $particle[$i][1] = Random(-200,200,1)
    $particle[$i][2] = Random(200,300,1)
    $particle[$i][3] = Random(1,4,1)
    Else
    $particle[$i][2] -= $particle[$i][3]
    EndIf

    SetPosition($Node_Particle[$i],$particle[$i][0],$particle[$i][1],-$particle[$i][2])

    Next

    EndFunc

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

    Func _particle_delete()
    For $i = 0 To UBound($Node_Particle) - 2 Step 1
    Remove($Node_Particle[$i])
    Next
    SetVisible($Node_Particle[UBound($Node_Particle) - 1],0)
    EndFunc

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

    Func _Bild_Suche($iTitel)

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

    _IEErrorHandlerRegister ()

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

    $oIE = _IECreateEmbedded ()
    GUICreate("Embedded Web control Test", 640, 480, _
    (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, _
    $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
    $GUIActiveX = GUICtrlCreateObj($oIE, 10, 40, 600, 360)
    $GUI_Button_Back = GUICtrlCreateButton("Back", 10, 420, 100, 30)
    $GUI_Button_Forward = GUICtrlCreateButton("Forward", 120, 420, 100, 30)
    $GUI_Button_Home = GUICtrlCreateButton("Home", 230, 420, 100, 30)
    $GUI_Button_Stop = GUICtrlCreateButton("Stop", 340, 420, 100, 30)

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

    GUISetState()

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

    _IENavigate ($oIE, "http://images.google.de/")
    $oForm = _IEFormGetObjByName($oIE, "f")
    $oQuery = _IEFormElementGetObjByName($oForm, "q")
    _IEFormElementSetValue($oQuery, $iTitel)
    _IEFormSubmit($oForm)

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $GUI_Button_Home
    _IENavigate ($oIE, "http://images.google.de/")
    Case $msg = $GUI_Button_Back
    _IEAction ($oIE, "back")
    Case $msg = $GUI_Button_Forward
    _IEAction ($oIE, "forward")
    Case $msg = $GUI_Button_Stop
    _IEAction ($oIE, "stop")
    EndSelect
    WEnd

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

    GUIDelete()

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

    EndFunc

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

    Func _sec_to_time_string($isec)
    Local $string = Int($isec / 3600) & " h " & Int(Mod($isec,3600) / 60) & " min " & Mod(Mod($isec,3600),60) & " sec"
    Return $string
    EndFunc

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

    Func _Ende()
    Exit
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von moritz1243 (19. November 2009 um 18:07)

  • Ja das mit der kreisbewegung kommt noch aber erstmal eine sortierfunktion ;) gut wäre auch wenn ihr dann ne skizze oder sowas macht -damit ich das leichter verstehe. - Kreisbewegung bekommt man wenn man in der ini flow_type auf 0 stetzt zumindest geht das in die richtung

  • Ich finde das Design richtig gut auf den Fotos :thumbup:

    Leider kann ich es nicht entpacken: 7zip sagt, dass Irrlicht.dll beschädigt ist

    Noch eine Idee: Es wäre toll, wenn man den Hintergrund verändern könnte in einem Menü.

    o
    L_/
    | ||

    This ist janaiky. Copy janaiky into your signature to help him on the war to the Weltherrschaft.

  • Na ganz so blöd bin ich auch nicht -.-
    Das habe ich schon, bei mir kommt dieser Ferhler:

    Spoiler anzeigen
    Code
    Spiele Center Beta\Spiele Center Beta.au3 (68) : ==> Unknown function name.:
    If $Window_type = 1 Then Global $Hwnd = CreateDevice($EDT_DIRECT3D9, 1024, 600, 16, 0, 0, 0)
    If $Window_type = 1 Then Global $Hwnd = ^ ERROR


    Und das Betrifft ja die Function CreateDevice

    Habe Archiv einfach entpackt und so gestartet wie es war, ging net

    EDIT: hat sich erledig, lag daran das ich in 64 bit compilert habe

    mfg. Jam00

    Einmal editiert, zuletzt von Jam00 (12. April 2010 um 21:04)

  • Cooles Script muss ich sagen!
    Da sind aber noch ein Paar fehler drinne:
    1. Wenn die Nachfrage kommt "Wollen sie <Spiel> wirklich starten" und man geht mit der Tastatur auf nein und drückt Enter, kommt die Nachfrage sofort wieder, man muss mit der Maus draufklicken
    2. Wenn ich mit den Pfeiltasten das spiel wechsle und dann Enter drück frag er mich immernoch ob ich das Spiel was voher im Vordergrund war starten will, nicht das Spiel was ich ausgewählt habe


    Verbesserungsvorschläge:
    1. Es säh bestimmt cool aus wenn du die Hüllen noch ein Wenig abrundest
    2. Vllt. eine Hintergrundbildoption
    3. Einen Spiel-Adder, womit man einfach Pfad zum spiel auswähl.
    4. Wenn ich mit den Pfeiltasten zwischen den Spielen hin und her wechsle muss ich ganz schnell loslassen sonst geht er schon weiter, vllt. könntest du da so eine kleine Unterbrechung einbauen, die dann eine Zeit wartet bis er weitergeht auch wenn man gedrückt hält

    mfg. Jam00

  • HI,

    mmh eigentlich schon, jedoch arbeite ich nicht mehr soviel mit autoit sondern fast ausschließlich nurnoch mit c++ vielleicht schriebe ich das script in c++ mal neu oder mal schauen

    grüße Moritz