Hallo,
Wie der Titel schon sagt geht es hier um ein Spiel, bei dem Schnelligkeit gefragt ist.
Steuerung:
* Ende - Space oder "Kreuz"
* Pfeiltaste OBEN - Schwierigkeit wird erhöht
* Pfeiltaste UNTEN - Schwierigkeit wird verringert
How to Play:
* Man muss mit der Maus auf das Lila Viereck gehen und DANN klicken ( links ). Dann bekommt man einen Punkt.
* Durch einsetzen der Pfeiltasten ( oben - unten ), kann man die Schwierigkeit erhöhen oder verniedrigen.
* Durch SPACE drücken wird das ergebnis angezeigt ( Treffer + Zeit ) und das Spiel wird beendet, das gleiche passiert wenn man das "Kreuz" drückt.
Der Code ( 76 Zeilen
Spoiler anzeigen
#include<GDIPlus.au3>
#include<Misc.au3>
Global $hBuffer, $hGegner_X, $hGegner_Y, $hBrush, $hBrush_white, $hTreffer, $hGetroffen, $i, $hSpawnRate
$hGui = GUICreate("DirFight - 0 Treffer | ENDE: Space", 500, 500)
GUISetState()
_GDIPlus_Startup()
$hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGui)
$hBitmap = _GDIPlus_BitmapCreateFromGraphics(500, 500, $hGraphics)
$hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
$hBrush_white = _GDIPlus_BrushCreateSolid(0xFFFFFFFF)
$hBrush_green = _GDIPlus_BrushCreateSolid(0xA000FF00)
$hBrush = _GDIPlus_BrushCreateSolid(0xFFFF00FF)
$hGegner_X = 240
$hGegner_Y = 240
Global $mPos[2] = [0, 0]
$i = 0
$hTreffer = 0
$hGetroffen = 5
$hSpawnRate = 20
_GDIPlus_GraphicsFillRect($hBuffer, 0, 0, 500, 500, $hBrush_white)
_GDIPlus_GraphicsFillRect($hBuffer, $hGegner_X, $hGegner_Y, 20, 20, $hBrush)
_GDIPlus_GraphicsDrawString($hBuffer, "Treffer: " & $hTreffer, 10, 480)
_GDIPlus_GraphicsDrawImageRect($hGraphics, $hBitmap, 0, 0, 500, 500)
$hTimer = TimerInit()
$hTimer_End = TimerInit()
$hTimer_Treffer = TimerInit()
while 1
$msg = GUIGetMsg()
$mPos = GUIGetCursorInfo()
Select
case $msg = -3 Or _IsPressed(20)
MsgBox(0, "ENDE", "Treffer: " & $hTreffer & @CRLF & "Zeit: " & int(TimerDiff($hTimer_End) / 1000) & " Sekunde(n)")
Exit
case TimerDiff($hTimer) >= 100
_SetPos()
case $mPos[0] >= $hGegner_X And $mPos[0] <= $hGegner_X + 20 And $mPos[1] >= $hGegner_Y And $mPos[1] <= $hGegner_Y + 20 And _IsPressed(01)
$hTreffer += 1
while $i <> $hSpawnRate * 10
_SetPos()
$i += 1
WEnd
WinSetTitle($hGui, "", "DirFight - " & $hTreffer & " Treffer | ENDE: Space")
$hGetroffen = 0
$i = 0
case _IsPressed(26)
$hSpawnRate += 2
sleep(100)
case _IsPressed(28)
$hSpawnRate -= 2
sleep(100)
EndSelect
_GDIPlus_GraphicsDrawImageRect($hGraphics, $hBitmap, 0, 0, 500, 500)
WEnd
func _SetPos()
$hDirection = int(Random(0, 5))
Select
case $hDirection = 1 And $hGegner_X - $hSpawnRate > 0
$hGegner_X -= $hSpawnRate
case $hDirection = 2 And $hGegner_Y - $hSpawnRate > 0
$hGegner_Y -= $hSpawnRate
case $hDirection = 3 And $hGegner_X + $hSpawnRate < 500 - $hSpawnRate
$hGegner_X += $hSpawnRate
case $hDirection = 4 And $hGegner_Y + $hSpawnRate < 500 - $hSpawnRate
$hGegner_Y += $hSpawnRate
EndSelect
_GDIPlus_GraphicsFillRect($hBuffer, 0, 0, 500, 500, $hBrush_white)
if $hGetroffen < 2 Then
$hGetroffen += 1
_GDIPlus_GraphicsFillRect($hBuffer, 0, 0, 500, 500, $hBrush_green)
EndIf
_GDIPlus_GraphicsFillRect($hBuffer, $hGegner_X, $hGegner_Y, 20, 20, $hBrush)
_GDIPlus_GraphicsDrawString($hBuffer, "Treffer: " & $hTreffer, 10, 480)
_GDIPlus_GraphicsDrawString($hBuffer, "Spawn Unterschied: " & $hSpawnRate, 150, 480)
$hTimer = TimerInit()
Return
EndFunc
mfg
Hauke