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
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
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)
GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]Global $Blend = 15, $Bewegung = 1, $Wechsel = 21, $Timer = 0
Dim $Richtung[2] = [1, 1]
WinSetTrans($Fenster, "", 15)
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
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
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
Func _exit()
Exit
EndFunc ;==>_exit
Hoffe es gefällt euch.
Magnus