War of the stick figures

  • Hi hab mein erstes wirkliches Spiel mit Bewegungen erstellt. Wenn ein spieler 10 punkte erreicht hat beendet sich das Programm von selbst der.
    Am Start muss jeder Player einmal springen und einmal schießen damit alles funktioniert.
    Durch Version v.0.04 nicht mehr notwendig!!!

    Die Bilder sind unter dem unten zu downloaden.

    Bekannte Bugs:

    Spoiler anzeigen

    Wenn man rechts oben in der Ecke steht schießt der Computer nicht immer zurück.
    Computer zappelt beim Stockwerkwechsel.

    Updtates:
    Version v.0.02 : Realistische Bewegung der Figur
    Version v.0.03 : Computergegner
    Version v.0.04 : Alle bisher bekannten Bugs(4) entfernt
    Script um 86 Zeilen verkürzt
    Version v0.05 : Einige Bilder durch _GdiPlus Befehle ersetzt
    Speedfertigkeit vorhanden
    Version v0.06 : Computergegner verbessert
    Bugs(3) entfernt
    Version v0.07 : Script um 61 Zeilen gekürzt

    Bitte auch Komentieren!

    Anleitung:
    Player1:
    Bewegen : Pfeiltasten
    Schießen : Enter
    Speedfertigkeit : Clear
    Player2:
    Rechts : D
    Links : A
    Springen : W
    Schießen : Q
    Speedfertigkeit : E

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GDIPlus.au3>
    #include <Misc.au3>

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

    Global $stock_pc2 = "ein",$stockwerk_pc_2 = "stehen",$rechts_pc = 0,$links_pc = 0,$speed = 5,$speed2 = 5,$speedfertigkeit1pl1 = 0,$speedfertigkeit1pl2 = 0,$fertigkeitspeed2 = 100,$bildpl1 = 0,$bildpl2 = 0,$schussrichtungt = "",$stockwerk = 0,$fertigkeitspeed1 = 100,$stockwerkf = 0,$stockwerkpc = 2,$dddplayer2 = 0,$zugrauf = "hinauf",$richtung = "rechts",$richtungplayer2 = "rechts",$feuer = "frei",$feuerplayer2 = "frei",$dsim = 1,$player1punkte,$player2punkte = 0,$zugx = 390,$ix = 0,$xs = -100,$xsplayer2 = -100,$ys = -100,$ysplayer2 = -100,$iX = 0,$iY = 570,$iXplayer2 = 540,$iYplayer2 = 450,$vX = 2,$vY = 1,$Jump = 0,$Jumpplayer2 = 0,$ddd = 0,$iSleep = 8,$d = 0,$dx = 0,$zugy2 = 0,$zugx2 = 0,$asd = 240,$asd2 = 200,$bild = 0,$iy = 0,$asd3 = 0,$asd4 = 0,$isa = 0,$isa2 = 0,$bildl = 0,$bildk = 0,$bildlk = -1,$nummer = 2,$nummer2 = 2
    $spieler2 = MsgBox(4,"",'Wollen sie "War of the stick figures" im Multiplayermodus spielen?')
    If $spieler2 = "6" Then
    $2playermode = "ein"
    Else
    $2playermode = "aus"
    EndIf
    Opt("GUIOnEventMode", 1)
    $hWnd = GUICreate("The War of the stick figures", 400, 400)
    GUISetBkColor(0xFFFFFF)
    GUISetState()
    Dim $kreis[51]
    _GDIPlus_Startup()
    $kreis[0] = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\bildergame1\strichm.png")
    $kreis[1] = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\bildergame1\strichm2.png")
    For $dsasd = 0 To 9
    $kreis[$nummer] = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\bildergame1\strichgame" & $nummer2 & ".gif")
    $nummer = $nummer +1
    $nummer2 = $nummer2 +1
    Next
    $nummer2 = 1
    $kreis[14] = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\bildergame1\strichgame1l.gif")
    $nummer = 23
    For $dasd = 0 To 8
    $kreis[$nummer] = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\bildergame1\strichgame"& $nummer2 &"l.gif")
    $nummer = $nummer -1
    $nummer2 = $nummer2 +1
    Next
    $schuss = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\bildergame1\mmmschuss.png")
    $weiss = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\bildergame1\welt 1.png")
    $zug = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\bildergame1\mmmzug1.png")
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics(600, 600, $hGraphic)
    $hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    For $dsasd = 0 To 320
    $hbrusbraun = _GDIPlus_BrushCreateSolid(0xFF996633)
    If Not($iY >= 570) Then $iy = $iy +1.9
    If Not ($d = 640) Then $d = $d +2
    If Not ($dx = 600) Then $dx = $dx +2
    If Not ($zugy2 = 450) And $d >= 100 Then $zugy2 = $zugy2 + 2
    If Not ($zugx2 = 390) And $d >= 100 Then $zugx2 = $zugx2 + 1.5
    If Not ($isa >= 455) And $d >= 20 Then $isa = $isa +1.8
    If Not($isa2 >= 540) And $d >= 20 Then $isa2 = $isa2 + 1.8
    If Not ($asd = 400) And $d >= 400 Then
    $asd3 = $asd3 +0.25
    EndIf

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

    _GDIPlus_GraphicsDrawImageRect($hBuffer, $weiss, 0, 0, $d, $dx)
    _GDIPlus_GraphicsFillRect($hBuffer, $zugx2, $zugy2, 100, 10,$hbrusbraun)
    _GDIPlus_GraphicsDrawImageRect($hBuffer, $kreis[0], $iX, $iY, 20, 20)
    _GDIPlus_GraphicsDrawImageRect($hBuffer, $kreis[1], $isa2, $isa, 20, 20)
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 0, 0, 400, 400)
    Next
    $d = -1000
    $dx = -1000
    $zugy2 = -1000
    $zugx2 = -1000
    $iX = 0
    $iY = 570
    $zugy = 450
    $iXplayer2 = 540
    $iYplayer2 = 455
    $tl = 0
    $tl2 = 0
    $bildpl2 = 1
    $bildpl = 1
    AdlibRegister("_jumpdown2player2",1)
    While Sleep(8)
    $mausd1 = GUIGetCursorInfo()
    If Not($mausd1 = 0) Then
    If _IsPressed(01) Then
    If $mausd1[0] >= 374 And $mausd1[0] <= 396 And $mausd1[1] >= -23 And $mausd1[1] <= -3 Then _Exit()
    EndIf
    _stockwerk()
    _zug()
    If _IsPressed("08") Then
    If $fertigkeitspeed1 = 100 Then
    $fertigkeitspeed1 = 0
    $speedfertigkeit1pl1 = 100
    $speed = 15
    AdlibUnRegister("_fertigkeitspeed")
    AdlibRegister("_speedfertigkeit1",30000)
    AdlibRegister("_speedfertigkeit1pl1",1000)
    EndIf
    EndIf
    If $2playermode = "aus" Then _pc()
    If _IsPressed(26) Then
    If $jump = 0 Then AdlibRegister("_jump",1)
    EndIf
    If _IsPressed(27) Then
    If Not( $ix >= 580) Then
    If Not($tl =27 ) Then $bildpl1 = 2
    $tl = 27
    $Ix += $speed
    $richtung = "rechts"
    $Bildpl1 = $bildpl1 + 1
    If $bildpl1 = 11 Then $bildpl1 = 3
    EndIf
    Else
    If $tl = 27 Then
    $bildpl1 = 0
    $tl = 0
    EndIf
    EndIf
    If Not(_IsPressed(27)) Then
    If _IsPressed(25) Then
    If Not ($ix <= 0) Then
    If Not($tl =25 ) Then $bildpl1 = 13
    $tl = 25
    $ix -= $speed
    $richtung = "links"
    $Bildpl1 = $bildpl1 + 1
    If $bildpl1 = 24 Then $bildpl1 = 14
    EndIf
    Else
    If $tl = 25 Then
    $bildpl1 = 1
    $tl = 0
    EndIf
    EndIf
    EndIf
    If _IsPressed("0D") Then
    If $xs <= -600 Or $xs >= 1200 Then $feuer = "frei"
    If $feuer = "frei" Then
    $feuer = "besetzt"
    If $richtung = "rechts" Then
    $xs = $ix +10
    Else
    $xs = $ix-10
    EndIf
    $ys = $iy +5
    AdlibRegister("_schuss",1)
    EndIf
    EndIf
    If $2playermode = "ein" Then
    If _IsPressed(57) Then
    If $jumpplayer2 = 0 Then AdlibRegister("_jumpplayer2",1)
    EndIf
    If _IsPressed(44) Then
    _pcrechts()
    Else
    If $tl2 = 44 Then
    $bildpl2 = 0
    $tl2 = 0
    EndIf
    EndIf
    If _IsPressed(41) Then
    _pclinks()
    Else
    If $tl2 = 25 Then
    $bildpl2 = 1
    $tl2 = 0
    EndIf
    EndIf
    If _IsPressed(51) Then
    If $xsplayer2 <= -600 Or $xsplayer2 >= 1200 Then $feuerplayer2 = "frei"
    If $feuerplayer2 = "frei" Then
    $feuerplayer2 = "besetzt"
    $xsplayer2 = $ixplayer2
    $ysplayer2 = $iyplayer2 +5
    AdlibRegister("_schussplayer2",1)
    EndIf
    EndIf
    EndIf

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

    If _IsPressed(45) Then
    If $fertigkeitspeed2 = 100 Then
    $fertigkeitspeed2 = 0
    $speedfertigkeit1pl2 = 100
    $speed2 = 15
    AdlibUnRegister("_fertigkeitspeed2")
    AdlibRegister("_speedfertigkeit2",30000)
    AdlibRegister("_speedfertigkeit1pl2",1000)
    EndIf
    EndIf
    $hbrusblau = _GDIPlus_BrushCreateSolid(0xFF0000FF)
    _GDIPlus_GraphicsDrawImageRect($hBuffer, $weiss, 0, 0, 640, 600)
    _GDIPlus_GraphicsFillRect($hBuffer, $xs, $ys, 3, 6,$hbrusblau)
    _GDIPlus_GraphicsFillRect($hBuffer, $xsplayer2, $ysplayer2, 3, 6,$hbrusblau)
    _GDIPlus_GraphicsDrawImageRect($hBuffer, $zug, $zugx, $zugy, 100, 10)
    _GDIPlus_GraphicsDrawImageRect($hBuffer, $kreis[$bildpl1], $iX, $iY, 20, 20)
    _GDIPlus_GraphicsDrawImageRect($hBuffer, $kreis[$bildpl2], $iXplayer2, $iYplayer2, 20, 20)
    _GDIPlus_GraphicsFillRect($hbuffer,$zugx,$zugy,100,10,$hbrusbraun)
    _GDIPlus_GraphicsDrawString($hBuffer,$player2punkte & ":" & $player1punkte,0,0,"Arial",30)
    ;žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžž
    ;žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžž
    $hbrusgelb = _GDIPlus_BrushCreateSolid(0xFFFFFF00)
    $hbrusweiss = _GDIPlus_BrushCreateSolid(0xFFFFFFFF)
    $hbrusrot = _GDIPlus_BrushCreateSolid(0xFFFF4040)

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

    _GDIPlus_GraphicsFillRect($hbuffer,495,195,105,30,$hbrusgelb)
    _GDIPlus_GraphicsFillRect($hbuffer,500,200,100,20,$hbrusweiss)
    _GDIPlus_GraphicsFillRect($hbuffer,500,200,$speedfertigkeit1pl2,20,$hbrusrot)
    _GDIPlus_GraphicsFillRect($hbuffer,500,200,$fertigkeitspeed2,20,$hbrusblau)

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

    _GDIPlus_GraphicsFillRect($hbuffer,0,195,105,30,$hbrusgelb)
    _GDIPlus_GraphicsFillRect($hbuffer,0,200,100,20,$hbrusweiss)
    _GDIPlus_GraphicsFillRect($hbuffer,0,200,$speedfertigkeit1pl1,20,$hbrusrot)
    _GDIPlus_GraphicsFillRect($hbuffer,0,200,$fertigkeitspeed1,20,$hbrusblau)
    ;žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžž
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 0, 0, 400, 400)
    If $player1punkte >= 10 Then
    If $2playermode = "ein" Then _GDIPlus_GraphicsDrawString($hBuffer,"Player2 wins!!!!",150,150,"Arial",30)
    If $2playermode = "aus" Then _GDIPlus_GraphicsDrawString($hBuffer,"The computer wins!!!!",150,150,"Arial",30)
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 0, 0, 400, 400)
    Sleep(6000)
    _exit()
    EndIf
    If $player2punkte >= 10 Then
    _GDIPlus_GraphicsDrawString($hBuffer,"Player1 wins!!!!",150,150,"Arial",30)
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 0, 0, 400, 400)
    Sleep(6000)
    _exit()
    EndIf
    EndIf
    WEnd
    Func _Exit()
    _GDIPlus_BrushDispose($hbrusweiss)
    _GDIPlus_BrushDispose($hbrusgelb)
    _GDIPlus_BrushDispose($hbrusrot)
    _GDIPlus_BrushDispose($hbrusblau)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_GraphicsDispose($hBuffer)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_Shutdown()
    Exit
    EndFunc
    Func _jump()
    AdlibUnRegister("_Jumpdown2")
    $jump = 1
    $jump1 = 1
    $collisionmove = $ix
    $collosion1 = $iy + 20
    If Not($collosion1 = 570 Or $collosion1 = 490) Or ($collisionmove >= 574 And $collisionmove <=590 And $collosion1 = 570) Or ($collisionmove >= 0 And $collisionmove <=40 And Not($collosion1 = 570)) Then
    $ddd = $ddd + 2.5
    If $ddd <= 100 Then
    $Iy -= 2.5
    Else
    AdlibUnRegister("_Jump")
    AdlibRegister("_jumpdown2",1)
    $jump1 = 0
    EndIf
    Else
    AdlibUnRegister("_Jump")
    AdlibRegister("_jumpdown2",1)
    $jump1 = 0
    EndIf
    EndFunc
    Func _schuss2()
    If $richtung = "rechts" Then $xs = $xs +5
    If $richtung = "links" Then $xs = $xs -5
    EndFunc
    Func _schuss()
    AdlibUnRegister("_schussrechts")
    AdlibUnRegister("_schusslinks")
    If $richtung = "rechts" Then AdlibRegister("_schussrechts",1)
    If $richtung = "links" Then AdlibRegister("_schusslinks",1)
    $stockwerkf = $stockwerk
    AdlibUnRegister("_schuss")
    EndFunc
    Func _schussrechts()
    $schussrichtungt = "rechts"
    _Getroffen()
    $xs = $xs +5
    EndFunc
    Func _schusslinks()
    $schussrichtungt = "links"
    _Getroffen()
    $xs = $xs -5
    EndFunc
    Func _jumpdown2()
    $collisionmove = $ix
    $collosion = $iy
    $zugplayer1 = $iy +20

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

    If Not( $collosion= 570 Or ($collosion = 525 Or $collosion =455 And Not($collisionmove >= 574 And $collisionmove <=590 And $collisionmove >=550 And $collisionmove <= 600 And $collosion = 525))) And Not( $zugplayer1 = $zugy And $ix >= 385 And $ix <= 485) Or ($collosion = 455 And( $collisionmove >=-5 And $collisionmove <=40)) Then
    $Iy += 2.5
    Else
    $ddd = 0
    $jump = 0
    EndIf
    EndFunc

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


    Func _zug()
    If $zugy = 450 Then $zugrauf = "hinauf"
    If $zugy = 300 Then $zugrauf = "hinunter"
    $zugplayer1 = $iy +20
    $zugplayer2 = $iyplayer2 +20
    If $zugrauf = "hinauf" Then
    If $ix >= 390 And $ix <= 900 And $zugplayer1 = $zugy Then $iy = $iy -5
    If $ixplayer2 >= 380 And $ixplayer2 <= 485 And $zugplayer2 = $zugy Then $iyplayer2 = $iyplayer2 -5
    If $ixplayer2 >= 380 And $ixplayer2 <= 485 And $zugplayer2 = $zugy Then $iyplayer2 = $iyplayer2 -5
    $zugy = $zugy -5
    Else
    If $ix >= 380 And $ix <= 485 And $zugplayer1 = $zugy Then $iy = $iy +5
    If $ixplayer2 >= 380 And $ixplayer2 <= 485 And $zugplayer2 = $zugy Then $iyplayer2 = $iyplayer2 +5
    $zugy = $zugy +5
    EndIf
    EndFunc
    Func _jumpplayer2() ;player2########################################################
    AdlibUnRegister("_Jumpdown2player2")
    $jumpplayer2 = 1
    $collisionmove22 = $ixplayer2
    $collosion1 = $iyplayer2 + 20
    If Not($collosion1 = 570 Or $collosion1 = 490) Or ($collisionmove22 >= 574 And $collisionmove22 <=590 And $collosion1 = 570) Or ($collisionmove22 >= 0 And $collisionmove22 <=40 And Not($collosion1 = 570)) Then
    $dddplayer2 = $dddplayer2 + 2.5
    If $dddplayer2 <= 100 Then
    $Iyplayer2 -= 2.5
    Else
    AdlibUnRegister("_Jumpplayer2")
    AdlibRegister("_jumpdown2player2",1)
    EndIf
    Else
    AdlibUnRegister("_Jumpplayer2")
    AdlibRegister("_jumpdown2player2",1)
    EndIf
    EndFunc

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

    Func _schussplayer2()
    AdlibUnRegister("_schussrechtsplayer2")
    AdlibUnRegister("_schusslinksplayer2")
    If $richtungplayer2 = "rechts" Then AdlibRegister("_schussrechtsplayer2",1)
    If $richtungplayer2 = "links" Then AdlibRegister("_schusslinksplayer2",1)
    AdlibUnRegister("_schussplayer2")
    EndFunc
    Func _schussrechtsplayer2()
    _Getroffen()
    $xsplayer2 = $xsplayer2 +5
    EndFunc
    Func _schusslinksplayer2()
    _Getroffen()
    $xsplayer2 = $xsplayer2 -5
    EndFunc
    Func _jumpdown2player2()
    $collosion = $iyplayer2
    $collisionmove = $ixplayer2
    $zugplayer2 = $iyplayer2 +20
    If Not( $collosion= 570 Or ($collosion = 525 Or $collosion =455 And Not($collisionmove >= 574 And $collisionmove <=590 And $collisionmove >=550 And $collisionmove <= 600 And $collosion = 525))) And Not( $zugplayer2 = $zugy And $ixplayer2 >= 380 And $ixplayer2 <= 485) Or ($collosion = 455 And( $collisionmove >=-5 And $collisionmove <=40)) Then
    $collosion = $iyplayer2
    $Iyplayer2 += 2.5
    Else
    $dddplayer2 = 0
    $jumpplayer2 = 0
    EndIf
    EndFunc
    Func _Getroffen()
    $treffer1 = $ysplayer2 - 5
    $treffer2 = $ysplayer2 + 15
    $xst = $xsplayer2 -5
    $xst2 = $xsplayer2
    If $iy >= $treffer1 And $iy <= $treffer2 And $ix >= $xst And $ix <= $xst2 Then
    AdlibRegister("_respawnplayer1",5000)
    $stockwerk = 5
    $iy = 570000000000000000
    $ix = 12200000000000000
    $player1punkte = $player1punkte + 1
    EndIf
    $treffer3 = $ys - 5
    $treffer4 = $ys + 15
    $xst3 = $xs -5
    $xst4 = $xs
    If $iyplayer2 >= $treffer3 And $iyplayer2 <= $treffer3 And $ixplayer2 >= $xst3 And $ixplayer2 <= $xst4 Then
    AdlibRegister("_respawnplayer2",5000)
    $iyplayer2 = -450000000000000000
    $ixplayer2 = -540000000000000000
    $player2punkte = $player2punkte + 1
    EndIf
    EndFunc
    Func _respawnplayer1()
    $tl = 0
    $iy = 570
    $ix = 0
    $stockwerk = 0
    AdlibUNRegister("_respawnplayer1")
    EndFunc
    Func _respawnplayer2()
    $tl2 = 0
    If $2playermode = "aus" Then $stockwerkpc =2
    $iyplayer2 = 450
    $ixplayer2 = 540
    $stockwerk_pc_2 = "stehen"
    If $fertigkeitspeed2 = 100 And $2playermode = "aus" Then _fertigkeitpc()
    AdlibUNRegister("_respawnplayer2")
    EndFunc

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

    ;prefect ball illusion
    ;animated optical illusion

    Func _fertigkeitpc()
    $fertigkeitspeed2 = 0
    $speedfertigkeit1pl2 = 100
    $speed2 = 15
    AdlibUnRegister("_fertigkeitspeed2")
    AdlibRegister("_speedfertigkeit2",30000)
    AdlibRegister("_speedfertigkeit1pl2",1000)
    EndFunc

    Func _pcjump()
    If $jumpplayer2 = 0 Then AdlibRegister("_jumpplayer2",1)
    EndFunc
    Func _pcrechts()
    If Not( $ixplayer2 >= 590 - $speed2) Then
    If Not($tl2 =44 ) Then $bildpl2 = 2
    $tl2 = 44
    $Ixplayer2 += $speed2
    $richtungplayer2 = "rechts"
    $Bildpl2 = $bildpl2 + 1
    If $bildpl2 = 11 Then $bildpl2 = 3
    EndIf
    EndFunc
    Func _pclinks()
    If Not $ixplayer2 = 0 Then
    If Not($tl2 =25 ) Then $bildpl2 = 13
    $tl2 = 25
    $Ixplayer2 -= $speed2
    $richtungplayer2 = "links"
    $Bildpl2 = $bildpl2 + 1
    If $bildpl2 = 24 Then $bildpl2 = 14
    EndIf
    EndFunc
    Func _pcschuss()
    If $xsplayer2 <= -600 Or $xsplayer2 >= 1200 Then $feuerplayer2 = "frei"
    If $feuerplayer2 = "frei" Then
    $feuerplayer2 = "besetzt"
    $xsplayer2 = $ixplayer2
    $ysplayer2 = $iyplayer2 +5
    AdlibRegister("_schussplayer2",1)
    EndIf
    EndFunc
    Func _stockwerk()
    If $iy = 570 Then $stockwerk = 0
    If $iy = 525 Then $stockwerk = 1
    If $iy = 455 Then $stockwerk = 2
    If $iyplayer2 = 570 Then $stockwerkpc = 0
    If $iyplayer2 = 525 Then $stockwerkpc = 1
    If $iyplayer2 = 455 Then $stockwerkpc = 2
    EndFunc
    Func _pc()
    $rechts_pc = 0
    $links_pc = 0
    If $stockwerkpc = 1 And ($stockwerk = 0) Then
    _pcrechts()
    $rechts_pc +=2
    EndIf
    If $stockwerkpc = 2 And ($stockwerk = 1 Or $stockwerk = 0) Then
    _pclinks()
    $links_pc +=2
    EndIf
    ;If $stockwerkpc = 2 Or $stockwerk = 2 Then $bildpl2 = 0
    If $stockwerk = $stockwerkpc Then
    If $richtungplayer2 = "rechts" And $stockwerkpc = 1 And $stockwerk = 1 And $ixplayer2 >= $ix And $stockwerk_pc_2 = "stehen" Then
    _pclinks()
    ElseIf $richtungplayer2 = "links" And $stockwerkpc = 1 And $stockwerk = 1 And $ixplayer2 <= $ix And $stockwerk_pc_2 = "stehen" Then
    _pcrechts()
    ElseIf $richtungplayer2 = "links" And ($stockwerkpc = 2 And $stockwerk = 2 Or $stockwerkpc = 0 And $stockwerk = 0) And $ixplayer2 <= $ix And $stockwerk_pc_2 = "stehen" Then
    _pcrechts()
    ElseIf $richtungplayer2 = "rechts" And ($stockwerkpc = 2 And $stockwerk = 2 Or $stockwerkpc = 0 And $stockwerk = 0) And $ixplayer2 >= $ix And $stockwerk_pc_2 = "stehen" Then
    _pclinks()
    EndIf
    EndIf
    If $stockwerk > $stockwerkpc And Not($stockwerk = 5) Then $stockwerk_pc_2 = "jump_" &$stockwerkpc
    If $stockwerk_pc_2 = "jump_0" Then
    If Not($ixplayer2 <=570) Then
    If $stockwerkpc = 0 Then _pcjump()
    If $iyplayer2 <= 530 Then
    _pclinks()
    $links_pc +=2
    EndIf
    Else
    If $ixplayer2 <= 570 And $stockwerkpc = 0 Then
    _pcrechts()
    $rechts_pc +=2
    EndIf
    EndIf
    If $stockwerkpc = 1 And $ixplayer2 <= 575 And $ixplayer2 >= 550 Then
    _pclinks()
    $links_pc += 2
    EndIf
    If $stockwerkpc = 1 And $ixplayer2 <= 550 Then $stockwerk_pc_2 = "stehen"
    EndIf
    If $stockwerk_pc_2 = "jump_1" Then
    If Not($ixplayer2 >=40) Then
    If $stockwerkpc = 1 Then _pcjump()
    If $iyplayer2 <= 450 Then
    _pcrechts()
    $rechts_pc +=2
    EndIf
    Else
    If $ixplayer2 >= 40 And $stockwerkpc = 1 Then
    _pclinks()
    $links_pc +=2
    EndIf
    EndIf
    If $stockwerkpc = 2 And $ixplayer2 >= 40 And $ixplayer2 <= 100 Then
    _pcrechts()
    $rechts_pc += 2
    EndIf
    If $stockwerkpc = 2 And $ixplayer2 >= 100 Then $stockwerk_pc_2 = "stehen"
    EndIf

    If $rechts_pc = 0 And $richtungplayer2 = "rechts" Then $bildpl2 = 0
    If $links_pc = 0 And $richtungplayer2 = "links" Then $bildpl2 = 1
    ;If $richtung = "links" Then
    ; $bildpl2 = 0
    ; $tl2 = 44
    ; EndIf
    ;If $richtung = "rechts" Then
    ; $bildpl2 = 1
    ; $tl2 =25
    ; EndIf
    $xst = $xs -20
    $xst2 = $xs + 20
    $treffer3 = $ys - 5
    $treffer4 = $ys + 15
    $xst3 = $xs -12
    $xst4 = $xs +12

    If $stockwerk = $stockwerkpc And (($richtungplayer2 = "links" And $ixplayer2 >= $xst2) Or ($richtungplayer2 = "rechts" And $ixplayer2 <= $ix)) Then _pcschuss()
    $random = Random(0,10,1)
    If $iyplayer2 >= $treffer3 And $iyplayer2 <= $treffer4 And $xst <= $ixplayer2 And $xst2 >= $ixplayer2 And Not($random =10) And ($stockwerkpc = 2 And $stockwerk = 2 Or $stockwerkpc = 0 And $stockwerk = 0) Then _pcjump()
    If $xst >= $ixplayer2 And $iyplayer2 >= $treffer3 And $iyplayer2 <= $treffer4 And $xst >= $ixplayer2 And Not($random =10) And $stockwerkpc = 1 And $stockwerk = 1 Then _pcjump()
    EndFunc

    Func _fertigkeitspeed()
    If Not ($fertigkeitspeed1 = 100) Then $fertigkeitspeed1 = $fertigkeitspeed1 +1
    EndFunc

    Func _fertigkeitspeed2()
    If Not ($fertigkeitspeed2 = 100) Then $fertigkeitspeed2 = $fertigkeitspeed2 +1
    EndFunc

    Func _speedfertigkeit1()
    AdlibUnRegister("_speedfertigkeit1pl1")
    $speedfertigkeit1pl = 0
    $speed = 5
    AdlibRegister("_fertigkeitspeed",1000)
    AdlibUnRegister("_speedfertigkeit1")
    EndFunc

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

    Func _speedfertigkeit2()
    AdlibUnRegister("_speedfertigkeit1pl2")
    $speedfertigkeit1pl2 = 0
    $speed2 = 5
    AdlibRegister("_fertigkeitspeed2",1000)
    AdlibUnRegister("_speedfertigkeit2")
    EndFunc

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

    Func _speedfertigkeit1pl1()
    $speedfertigkeit1pl1 = $speedfertigkeit1pl1 -3.3
    EndFunc

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

    Func _speedfertigkeit1pl2()
    $speedfertigkeit1pl2 = $speedfertigkeit1pl2 -3.3
    EndFunc

    [/autoit]
  • das ist wenst am start nicht springst und schießt wens dann trozdem nicht geht mach mal einen schuss in der mittelreihe

    Einmal editiert, zuletzt von manuel6000 (1. April 2011 um 18:48)

  • Zitat

    das ist wenst am start nicht springst und schießt wens dann trozdem nicht geht mal mal einen schuss in der mittelreihe


    Jetzt geht es, aber irgendwie bin ich nicht sonderlich beeindruckt von deinem Spiel. :S Wenn du es (um einiges) weiter ausbaust und ein paar passende Bilder und vielleicht auch ein paar Animationen (z.B. für die Schüsse, oder Laufbewegungen) verwendest wäre es bestimmt ein nettes kleines Spiel. Wenn du vorhast, daran noch länger zu arbeiten könntest du auch eine einfache KI und einen SinglePlayer Modus einbauen.

  • ist ja auch mein erstes spiel,habe auch nach figuren gesucht aber keine gefunden und was ist ein kl? aflakes du musst dir die bilder auch doawnlaoden

  • Zum Beispiel:

    Wenn eine Variable nur einen String enthält als Prefix des Namens ein kleines "s": $sText
    Wenn eine Variable nur eine Zahl ist: $iZahl
    Wenn eine Variable ein Bool ist: $fBoolean (@All ja F, B wäre Binary)
    Usw ...

    Sonst klappt das Script und tut was es soll :)


    Da gibts auch einen übersichtlichen Artikel zu; den such ich seit ein paar Tagen, mir fehlt wohl der richtige Suchbegriff.
    Hat jemand den Link dahin parat ?

  • Für 43KB zahlt es sich nicht wirklich aus 1 Minute zu warten. Ich empfehle dir den FIlehoster mediafire.com oder solidfiles.com . Genug Speed für kleine Files und keine Wartezeit.

    Und zum Spiel: Falls du es ausbauen würdest, würde sicher was interessantes dabei rauskommen. Jetzt ist es schonmal ein guter Anfang mit den Grundfunktionen.

  • es gibt eine neue version die bilder sind immernoch die gleichen und müssen nicht neu gedoawnloadet werden

  • Da du vieles ausschreibst, wird das Script relativ lang (zb: ImageLoadFromFile), schau dir mal For-Schleifen und Arrays an (Hilfedatei), da kannst du das ganze um einiges kürzen!
    Grüße Faweyr

  • Unnötige Verschwendung des Speichers auf der HDD des Servers :whistling:
    Naja sonst: Wenn die Codestruktur da wäre ein tolles Script.

    Ob ungarische Notation oder nicht, das sei jedem selbst überlassen. Ist halt in Autoit so, dass man nicht erkennt, was die Variable beinhaltet, damit muss man leben lernen.
    Und nur wegen Nichtbenutzens jener Notation gleich das ganze Script als "schlecht" zu titulieren, halte ich persönlich doch schon für stark überzogen.