FensterFinden Spiel

  • Hallo,

    ich hatte Langeweile und habe da ein Spiel programmiert.

    Auf dem Desktop wird ein Fenster mit 15% Sichtbarkeit angezeigt und bewegt.
    Das Ziel des Spieles ist es auf den Button des Fensters zu klicken.

    Quellentext:

    Spoiler anzeigen
    [autoit]

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

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

    Dim $FensterPos[2] = [Random(1, @DesktopWidth - 75, 1), Random(1, @DesktopHeight - 25, 1)]

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

    $Fenster = GUICreate("Fenster", 75, 25, $FensterPos[0], $FensterPos[1], $WS_POPUP, BitOR($WS_EX_APPWINDOW, $WS_EX_TOOLWINDOW, $WS_EX_TOPMOST, $WS_EX_WINDOWEDGE))
    GUISetBkColor(0xFFFF00)
    $Button1 = GUICtrlCreateButton("Gefunden", 0, 0, 75, 25, $WS_GROUP)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlSetBkColor(-1, 0xFF0000)

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

    GUISetState(@SW_SHOW)

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

    Global $Blend = 15, $Bewegung = 1, $Wechsel = 21, $Timer = 0
    Dim $Richtung[2] = [1, 1]
    WinSetTrans($Fenster, "", 15)

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

    HotKeySet("{F2}", "_exit")

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

    _do()

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

    Func _do()
    Do
    $Mausposition = MouseGetPos()
    If $Mausposition[0] > $FensterPos[0] And $Mausposition[0] < ($FensterPos[0] + 75) And $Mausposition[1] > $FensterPos[1] And $Mausposition[1] < ($FensterPos[1] + 25) Then
    If $FensterPos[0] < 65 Then
    $ForRich = 1
    Else
    $ForRich = 2
    EndIf
    For $Durchlauf = $Blend To 250 Step 5
    WinSetTrans($Fenster, "", $Durchlauf)
    Sleep(2.5)
    If $FensterPos[0] < 51 And $ForRich = 2 Then
    $FensterPos[0] += 2
    ElseIf $ForRich = 2 Then
    $FensterPos[0] -= 4
    ElseIf $FensterPos[0] > (@DesktopWidth - 126) Then
    $FensterPos[0] -= 2
    Else
    $FensterPos[0] += 4
    EndIf
    WinMove($Fenster, "", $FensterPos[0], $FensterPos[1])
    Next
    $Blend = 250
    Else
    For $Durchlauf = $Blend To 15 Step -10
    WinSetTrans($Fenster, "", $Durchlauf)
    Sleep(2.5)
    If $Wechsel = 21 Then
    If $FensterPos[0] < 49 Then
    $FensterPos[0] += $Bewegung
    $FensterPos[0] += 10
    $Richtung[0] = 2
    ElseIf $FensterPos[0] > (@DesktopWidth - 51) Then
    $FensterPos[0] -= $Bewegung
    $FensterPos[0] -= 10
    $Richtung[0] = 1
    Else
    If Random(1, 2, 1) = 1 Then
    $FensterPos[0] -= $Bewegung
    $Richtung[0] = 1
    Else
    $FensterPos[0] += $Bewegung
    $Richtung[0] = 2
    EndIf
    EndIf
    If $FensterPos[1] < 49 Then
    $FensterPos[1] += $Bewegung
    $FensterPos[1] += 10
    $Richtung[1] = 2
    ElseIf $FensterPos[1] > (@DesktopHeight - 51) Then
    $FensterPos[1] -= $Bewegung
    $FensterPos[1] -= 10
    $Richtung[1] = 1
    Else
    If Random(1, 2, 1) = 1 Then
    $FensterPos[1] -= $Bewegung
    $Richtung[1] = 1
    Else
    $FensterPos[1] += $Bewegung
    $Richtung[1] = 2
    EndIf
    EndIf
    $Wechsel = 1
    Else
    If $FensterPos[0] < 49 Then
    $FensterPos[0] += $Bewegung
    $FensterPos[0] += 10
    $Richtung[0] = 2
    $Wechsel = 0
    ElseIf $FensterPos[0] > (@DesktopWidth - 51) Then
    $FensterPos[0] -= $Bewegung
    $FensterPos[0] -= 10
    $Richtung[0] = 1
    $Wechsel = 0
    Else
    If $Richtung[0] = 1 Then
    $FensterPos[0] -= $Bewegung
    ElseIf $Richtung[0] = 2 Then
    $FensterPos[0] += $Bewegung
    EndIf
    EndIf
    If $FensterPos[1] < 49 Then
    $FensterPos[1] += $Bewegung
    $FensterPos[1] += 10
    $Richtung[1] = 2
    $Wechsel = 0
    ElseIf $FensterPos[1] > (@DesktopHeight - 51) Then
    $FensterPos[1] -= $Bewegung
    $FensterPos[1] -= 10
    $Richtung[1] = 1
    $Wechsel = 0
    Else
    If $Richtung[1] = 1 Then
    $FensterPos[1] -= $Bewegung
    ElseIf $Richtung[1] = 2 Then
    $FensterPos[1] += $Bewegung
    EndIf
    EndIf
    $Wechsel += 1
    EndIf
    WinMove($Fenster, "", $FensterPos[0], $FensterPos[1])
    Next
    $Blend = 15
    EndIf

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

    If $Wechsel = 21 Then
    If $FensterPos[0] < 49 Then
    $FensterPos[0] += $Bewegung
    $FensterPos[0] += 10
    $Richtung[0] = 2
    ElseIf $FensterPos[0] > (@DesktopWidth - 51) Then
    $FensterPos[0] -= $Bewegung
    $FensterPos[0] -= 10
    $Richtung[0] = 1
    Else
    If Random(1, 2, 1) = 1 Then
    $FensterPos[0] -= $Bewegung
    $Richtung[0] = 1
    Else
    $FensterPos[0] += $Bewegung
    $Richtung[0] = 2
    EndIf
    EndIf
    If $FensterPos[1] < 49 Then
    $FensterPos[1] += $Bewegung
    $FensterPos[1] += 10
    $Richtung[1] = 2
    ElseIf $FensterPos[1] > (@DesktopHeight - 51) Then
    $FensterPos[1] -= $Bewegung
    $FensterPos[1] -= 10
    $Richtung[1] = 1
    Else
    If Random(1, 2, 1) = 1 Then
    $FensterPos[1] -= $Bewegung
    $Richtung[1] = 1
    Else
    $FensterPos[1] += $Bewegung
    $Richtung[1] = 2
    EndIf
    EndIf
    $Wechsel = 1
    Else
    If $FensterPos[0] < 49 Then
    $FensterPos[0] += $Bewegung
    $FensterPos[0] += 10
    $Richtung[0] = 2
    $Wechsel = 0
    ElseIf $FensterPos[0] > (@DesktopWidth - 51) Then
    $FensterPos[0] -= $Bewegung
    $FensterPos[0] -= 10
    $Richtung[0] = 1
    $Wechsel = 0
    Else
    If $Richtung[0] = 1 Then
    $FensterPos[0] -= $Bewegung
    ElseIf $Richtung[0] = 2 Then
    $FensterPos[0] += $Bewegung
    EndIf
    EndIf
    If $FensterPos[1] < 49 Then
    $FensterPos[1] += $Bewegung
    $FensterPos[1] += 10
    $Richtung[1] = 2
    $Wechsel = 0
    ElseIf $FensterPos[1] > (@DesktopHeight - 51) Then
    $FensterPos[1] -= $Bewegung
    $FensterPos[1] -= 10
    $Richtung[1] = 1
    $Wechsel = 0
    Else
    If $Richtung[1] = 1 Then
    $FensterPos[1] -= $Bewegung
    ElseIf $Richtung[1] = 2 Then
    $FensterPos[1] += $Bewegung
    EndIf
    EndIf
    $Wechsel += 1
    EndIf
    WinMove($Fenster, "", $FensterPos[0], $FensterPos[1])
    Sleep(2.5)
    Until GUIGetMsg() = $Button1
    EndFunc ;==>_do

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

    While 1
    If MsgBox(262212, "Finde das Fenster", "Du hast das Fenster gefunden!" & @CRLF & "Willst du es noch einmal suchen?") = 6 Then
    Dim $FensterPos[2] = [Random(1, @DesktopWidth - 75, 1), Random(1, @DesktopHeight - 25, 1)]
    _do()
    Else
    Exit
    EndIf
    WEnd

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

    Func _exit()
    Exit
    EndFunc ;==>_exit

    [/autoit]

    Hoffe es gefällt euch.
    Magnus

    Magnus

    3 Mal editiert, zuletzt von Magnus (22. November 2009 um 17:45)

  • ich würde die transparenz auf 10 runtersetzen weil ich sehe es sofort(augenarzt sagt ich habe sehr gute augen) aber kannst es natürlich auch so lassen

  • Das Spiel ist meiner Meinung nach ein wenig zu leicht. Der Knopf sollte nich aufhören sich zu bewegen wenn man über ihm ist. Der Knopf sollte sich von Anfang an in einem größerem Bereich bewegen und das ein wenig schneller oder am besten sollte die Geschwindigkeit auch noch einstellbar sein über ein GUI was sich vorher öffnet.

  • Du könntest es noch machen, das sich das Fenster von der Maus wegbewegt. Also das sich das Fenster auf der Diagonalen (Mausposition und Fensterposition) von der Mausposition wegbewegt.

  • Du könntest es noch machen, das sich das Fenster von der Maus wegbewegt. Also das sich das Fenster auf der Diagonalen (Mausposition und Fensterposition) von der Mausposition wegbewegt.

    Dann kann man es ja nicht fangen! :(

    Ettecks: Werde ich machen. :)

    Magnus

  • @ Magnus: Mhm, vielleicht eine höchst Bewegungsgeschwindigkeit festlegen. Wenn man mit der Maus schneller ist, dann ist da eine Chance da.

  • Schönes Update,
    zuerst dachte ich öööh schon wieder so langsam dann versuchte ich es anzuklicken und es wurde so schnell das ich ausversehen meinen Internet Browser geschlossen hab :D
    Irgendetwas fehlt da noch doch ich weiß nicht was...