DirFight - Ein kleines Schnelligkeitsspiel

  • 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
    [autoit]

    #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

    [/autoit]

    mfg
    Hauke

  • [autoit]


    #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

    [/autoit]

    So, damit isses behoben ;)

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Für 76 Zeilen recht gut aber wie wärs wenn du überprüfst ob auch wieder losgelassen wird, damit man nicht die ganze Zeit gedrückt hinter dem Rechteck herfährt ;)

    mfg BB

    "IF YOU'RE GOING TO KILL IT
    OPEN SOURCE IT!"

    by Phillip Torrone

    Zitat von Shoutbox

    [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:

    https://autoit.de/index.php?page…leIt#post251138

    Neon Snake