erstes Spiel

Spiele, Demos, Grafikzeug und anderes unterhaltendes.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

@AND

ne, irgendwie is man ja auch selbst schulz,
wenn man während eines kritischen downloads
ein unbekanntes proggie von nem anfänger austestet... XD

aber danke für die hinweise, leute.
also werd ich mir ersma den source reinziehen, bevor ichs starte... ;)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Im Prinzip hast du ja Recht, ich bin verantwortlich für das, was ich tue.
Aber man könnte mir ja vorher ruhig mal sagen, dass im Code keine Rücksicht auf Delay(), SetFrameRate() oder FlipBuffers() genommen wurde. :twisted:

Besser, man würde nen Schild aufstellen: Bild
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

dann schau dir den code vorher an, schließlich isser dabei.

@topic

also, bei mir funztes auch ohne ergänzungen.

zum game:
1. ab 400 punkte wird es wesentlich langsamer
2. ab 700 nochmal, und da wirds dann strange,
weil innerhalb kurzer zeit das bild mit "gegnern" voll ist.
3. immer nur von rechts ist auf die dauer echt langweilig.

zum code:
1. für die gegner kann man ein array verwenden, oder eine liste, und eine struct,
dann spart man sich auch die 22 Ifs für die kollision und kann das per schleife erledigen.
2. dahingegen brauchst du für den Player keine struct, und schon garkeine array.
eine struct kann man auch ohne array oder liste verwenden.
3. für das darstellen der noch vorhandenen schüsse kann man auch ne schleife verwenden.


aber:
für den ersten versuch schon mal recht ok.
bau auf jeden fall mal ein SetFrameRate ein, damit auch andere es testen können.

und benutz nen anderen anbieter als RapidShare, der müll is alles andere als "rapid",
ein download mit 9KB/s geht einem echt aufn Keks.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Kaeru Gaman hat geschrieben:dann schau dir den code vorher an, schließlich isser dabei.
Das er dabei ist, streite ich nicht ab.
Aber ich lud mir das Spiel, um es zu testen, wie der Threadersteller es verlangte.

Ich habe keine Lust, mich erst durch hunderte, evtl. sogar tausende Zeilen Code zu wühlen, ur um mich zu vergewissern, dass meinem PC auch nix passiert.

Ich entschuldige mich für meinen rauen Ton (der vorigenPosts). Aber jeder (auch jeder Anfänger) wird wohl schlau genug sein, sich zu überlegen, wie man crashes verhindert. s wird wohl niemand auf die Idee kommen, z. B. StopDrawing() zu vergessen, wo dies doch überall in der Hilfe angemahnt wird! Ebenso wird mE jeder auf die Idee kommen, WaitWindowEvent() statt WIndowEvent() zu verwenden.

Damit jetzt niemand sagt: "Pack dich erstmal an deine eigene Nase." Ich war auch mal Anfänger. Aber mein erstes Screenbasierendes Spiel läuft wenigstens ordentlich, auch wenn ich damals von Arrays und LinkedLists keine Ahnung hatte.

@ Thread: Sieh dir mal das Tutorial von Oliver Baum (glaub ich) an. Gibt's auf www.purearea.net das erstellt Schritt für Schritt ein Weltraumballerspiel mit allem was du brauchst.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
#NULL
Beiträge: 2237
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

"Spiele für Fortgeschrittene - Udo Kessler - 1.8 MB - In sieben Teilen wird ein kleines Weltraum-Ballerspiel entwickelt."
auf http://www.robsite.de/tutorials.php?tut=purebasic war glaub ich auch ganz brauchbar.
my pb stuff..
Bild..jedenfalls war das mal so.
THEEX
Beiträge: 804
Registriert: 07.09.2004 03:13

Beitrag von THEEX »

@AND51

Ich kann zwar verstehen, daß Du dich ärgerst, aber das der Code von einem Anfänger ist, war ja klar ersichtlich und daher biste wirklich in jeder Hinsicht selbst schuld. Vorallem wenn Du irgendwas testest, was du in keinster weisse kennst, aber für dich wichtige Dinge auf dem Rechner zu dem Zeitpunkt laufen hast...
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Beitrag von R4z0r1989 »

Das Spiel is für ein erstes Spiel auf alle Fälle gut!

Und zu dem Thema Faule Socke:

Will auch so nen Titel!!!
Wie wärs mit :Nervensäge, Noch viel faulere Socke als Thomas oder Noob!

^^
Naja sry für den Spam!

Greetz R4z0r
Benutzeravatar
Thomas
Beiträge: 893
Registriert: 06.07.2006 19:24
Wohnort: Regensburg
Kontaktdaten:

Beitrag von Thomas »

kann sein das ich's übersehen habe....

wo bleiben die Screenshots?

(da gibts'n Button der nennt sich "edit" da kannst du das noch nachtragen :lol: )
v6.00
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

@Janno: sicherlich noch verbesserungsfähig, aber schonmal nicht schlecht für ein erstes Game. :allright:

Ich hab deinen Code mal auf die schnelle etwas durchgeschaut, und ein paar Verbesserungen eingebaut (und die Änderungen auch kommentiert, durchsuche den Code einfch nach ; um all Änderungen zu finden). Z.b. das Problem, dass dein Spiel "zu schnell" läuft, hab ich mal behoben, der einzig gröbere Schnitzer, den ich nicht korrigiert habe, das sind deine seitenlangen If-Abfragen (sowas macht man mit LinkedLists und ForEach-Schleifen ;)

Aber wie gesagt, das wird noch! :allright:

//EDIT: Da hatte ich doch tatsächlich bei dem ganzen Geschwafel das wichtigste Vergessen... ^^ Hier ist es:

Code: Alles auswählen

; *********
; *** Wird nur benötigt, um den Code mit der Demoversion von PB zu compilen (hier wird die WinAPI-Funktion SetTimer_() "gewrappt")
; *********
; 
; OpenLibrary(0,"user32.dll")
; lpSetTimer.l = GetFunction(0,"SetTimer")
; If lpSetTimer.l = 0
;   End ;Beende das Programm, falls Windows so zerschossen sein sollte, dass sogar die user32.dll kaputt ist.
; EndIf
; Procedure SetTimer_(hWnd.l,nIDEvent.l,uElapse.l,lpTimerFunc.l)
;   CallFunctionFast(lpSetTimer,hWnd,nIDEvent,uElapse,lpTimerFunc)
; EndProcedure
; 
; *********
; *** Spezialcode für die Demoversion von PB endet hier
; *********

InitSprite()
InitKeyboard()
InitMouse()
InitSound()

OpenScreen(800,600,16,"")
  LoadSprite(1,"Bilder\Maus.bmp")
  LoadSprite(2,"Bilder\Munition.bmp")
  LoadSprite(3,"Bilder\Back.bmp")
  LoadSprite(4,"Bilder\Gegner1.bmp")
  
  LoadSound(3,"Sounds\Backsound.wav")
  LoadSound(4,"Sounds\Schuss.wav")
  LoadSound(2,"Sounds\Down.wav")
  
MouseLocate(800/2-SpriteWidth(1)/2,600/2-SpriteHeight(1)/2)
Shotdelay = 50
Munition = 5

PlaySound(3,1)

Gegnerx = 950
Gegnery = Random(600-SpriteHeight(4))
Gegnerx2 = 955
Gegnery2 = Random(600-SpriteHeight(4))
Gegnerx3 = 955
Gegnery3 = Random(600-SpriteHeight(4))
Gegnerx4 = 955
Gegnery4 = Random(600-SpriteHeight(4))
Gegnerx5 = 955
Gegnery5 = Random(600-SpriteHeight(4))
Gegnerx6 = 955
Gegnery6 = Random(600-SpriteHeight(4))
Gegnerx7 = 955
Gegnery7 = Random(600-SpriteHeight(4))
Gegnerx8 = 955
Gegnery8 = Random(600-SpriteHeight(4))
Gegnerx9 = 955
Gegnery9 = Random(600-SpriteHeight(4))
Gegnerx10 = 955
Gegnery10 = Random(600-SpriteHeight(4))
Gegnerx11 = 955
Gegnery11 = Random(600-SpriteHeight(4))
Gegnerx12 = 955
Gegnery12 = Random(600-SpriteHeight(4))
Gegnerx13 = 955
Gegnery13 = Random(600-SpriteHeight(4))
Gegnerx14 = 955
Gegnery14 = Random(600-SpriteHeight(4))
Gegnerx15 = 955
Gegnery15 = Random(600-SpriteHeight(4))
Gegnerx16 = 955
Gegnery16 = Random(600-SpriteHeight(4))
Gegnerx17 = 955
Gegnery17 = Random(600-SpriteHeight(4))
Gegnerx18 = 955
Gegnery18 = Random(600-SpriteHeight(4))
Gegnerx19 = 955
Gegnery19 = Random(600-SpriteHeight(4))
Gegnerx20 = 955
Gegnery20 = Random(600-SpriteHeight(4))
Gegnerx21 = 955
Gegnery21 = Random(600-SpriteHeight(4))
Gegnerx22 = 955
Gegnery22 = Random(600-SpriteHeight(4))

Structure Player
Punkte.l
Leben.l
Geld.l
EndStructure

Dim Player.Player(0)
Player(0)\Punkte = 0
Player(0)\Leben = 3
Player(0)\Geld = 0

SetTimer_(0,0,17,0) ;Wir starten einen Timer, der uns alle 17 Milisekunden ein #WM_Timer Event an unser Programm schickt
                    ;Warum 17 ms? 1 Sekunde hat 1000 Millisekunden, und die Standardrefreshrate ist auf einem normalen
                    ;PC immer 60 Hz. Demzufolge: 1000ms / 60Hz = 16.66666ms (da SetTimer_() aber nur Ganzzahlen annimmt,
                    ;runden wir auf 17ms auf)

Repeat
  If #WM_TIMER = WaitWindowEvent() ;Mit WaitwindowsEvent() schlagen wir 2 Fliegen mit einer Klatsche:
                                   ;1.) Wir brauchen kein Delay(), WaitWindowEvent() wartet immer, bis ein neues Event
                                   ;    gemeldet wird
                                   ;2.) Wir beschränken unsere Framerate auf ca. 60 Bilder pro Sekunde. Unser Spiel läuft
                                   ;also nie "zu schnell", sondern höchstens noch "zu langsam".
    
    FlipBuffers()
    If IsScreenActive() ;Das Spiel rendert und rechnet nur, wenn der Screen auch wirklich aktiv ist. Wenn der Benutzer das
                        ;Spiel mit ALT+TAB minimiert hat, dann verbraucht das Spiel (fast) gar keine CPU-Leistung mehr
      ClearScreen(0)
      DisplaySprite(3,0,0)
      DisplayTransparentSprite(4,Gegnerx,Gegnery)
        Gegnerx-3
      
      ExamineMouse() ;Diese Funktion ruft man erst unmittelbar vor dem Verarbeiten der abgefragten Eingaben auf! ;)
      If MouseButton(#PB_MouseButton_Right) And Munition < 1
        Munition = 5
        Player(0)\Geld-10
      ElseIf MouseButton(#PB_MouseButton_Left) And Munition > 0 And Shotdelay = 0
        Munition-1
        Shotdelay = 20
        PlaySound(4)
        If SpritePixelCollision(1,Mausx,Mausy,4,Gegnerx,Gegnery)
          Gegnerx = 1000
          Gegnery = Random(600-SpriteHeight(4))
          Player(0)\Punkte+5
          Player(0)\Geld+5
        EndIf
        If SpritePixelCollision(1,Mausx,Mausy,4,Gegnerx2,Gegnery2)
          Gegnerx2 = 1000
          Gegnery2 = Random(600-SpriteHeight(4))
          Player(0)\Punkte+5
          Player(0)\Geld+5
        EndIf
        If SpritePixelCollision(1,Mausx,Mausy,4,Gegnerx3,Gegnery3)
          Gegnerx3 = 1000
          Gegnery3 = Random(600-SpriteHeight(4))
          Player(0)\Punkte+5
          Player(0)\Geld+5
        EndIf
        If SpritePixelCollision(1,Mausx,Mausy,4,Gegnerx4,Gegnery4)
          Gegnerx4 = 1000
          Gegnery4 = Random(600-SpriteHeight(4))
          Player(0)\Punkte+5
          Player(0)\Geld+5
        EndIf
        If SpritePixelCollision(1,Mausx,Mausy,4,Gegnerx5,Gegnery5)
          Gegnerx5 = 1000
          Gegnery5 = Random(600-SpriteHeight(4))
          Player(0)\Punkte+5
          Player(0)\Geld+5
        EndIf
        If SpritePixelCollision(1,Mausx,Mausy,4,Gegnerx6,Gegnery6)
          Gegnerx6 = 1000
          Gegnery6 = Random(600-SpriteHeight(4))
          Player(0)\Punkte+5
          Player(0)\Geld+5
        EndIf
        If SpritePixelCollision(1,Mausx,Mausy,4,Gegnerx7,Gegnery7)
          Gegnerx7 = 1000
          Gegnery7 = Random(600-SpriteHeight(4))
          Player(0)\Punkte+5
          Player(0)\Geld+5
        EndIf
        If SpritePixelCollision(1,Mausx,Mausy,4,Gegnerx8,Gegnery8)
          Gegnerx8 = 1000
          Gegnery8 = Random(600-SpriteHeight(4))
          Player(0)\Punkte+5
          Player(0)\Geld+5
        EndIf
        If SpritePixelCollision(1,Mausx,Mausy,4,Gegnerx9,Gegnery9)
          Gegnerx9 = 1000
          Gegnery9 = Random(600-SpriteHeight(4))
          Player(0)\Punkte+5
          Player(0)\Geld+5
        EndIf
        If SpritePixelCollision(1,Mausx,Mausy,4,Gegnerx10,Gegnery10)
          Gegnerx10 = 1000
          Gegnery10 = Random(600-SpriteHeight(4))
          Player(0)\Punkte+5
          Player(0)\Geld+5
        EndIf
        If SpritePixelCollision(1,Mausx,Mausy,4,Gegnerx11,Gegnery11)
          Gegnerx11 = 1000
          Gegnery11 = Random(600-SpriteHeight(4))
          Player(0)\Punkte+5
          Player(0)\Geld+5
        EndIf
        If SpritePixelCollision(1,Mausx,Mausy,4,Gegnerx12,Gegnery12)
          Gegnerx12 = 1000
          Gegnery12 = Random(600-SpriteHeight(4))
          Player(0)\Punkte+5
          Player(0)\Geld+5
        EndIf
        If SpritePixelCollision(1,Mausx,Mausy,4,Gegnerx13,Gegnery13)
          Gegnerx13 = 1000
          Gegnery13 = Random(600-SpriteHeight(4))
          Player(0)\Punkte+5
          Player(0)\Geld+5
        EndIf
        If SpritePixelCollision(1,Mausx,Mausy,4,Gegnerx14,Gegnery14)
          Gegnerx14 = 1000
          Gegnery14 = Random(600-SpriteHeight(4))
          Player(0)\Punkte+5
          Player(0)\Geld+5
        EndIf
        If SpritePixelCollision(1,Mausx,Mausy,4,Gegnerx15,Gegnery15)
          Gegnerx15 = 1000
          Gegnery15 = Random(600-SpriteHeight(4))
          Player(0)\Punkte+5
          Player(0)\Geld+5
        EndIf
        If SpritePixelCollision(1,Mausx,Mausy,4,Gegnerx16,Gegnery16)
          Gegnerx16 = 1000
          Gegnery16 = Random(600-SpriteHeight(4))
          Player(0)\Punkte+5
          Player(0)\Geld+5
        EndIf
        If SpritePixelCollision(1,Mausx,Mausy,4,Gegnerx17,Gegnery17)
          Gegnerx17 = 1000
          Gegnery17 = Random(600-SpriteHeight(4))
          Player(0)\Punkte+5
          Player(0)\Geld+5
        EndIf
        If SpritePixelCollision(1,Mausx,Mausy,4,Gegnerx18,Gegnery18)
          Gegnerx18 = 1000
          Gegnery18 = Random(600-SpriteHeight(4))
          Player(0)\Punkte+5
          Player(0)\Geld+5
        EndIf
        If SpritePixelCollision(1,Mausx,Mausy,4,Gegnerx19,Gegnery19)
          Gegnerx19 = 1000
          Gegnery19 = Random(600-SpriteHeight(4))
          Player(0)\Punkte+5
          Player(0)\Geld+5
        EndIf
        If SpritePixelCollision(1,Mausx,Mausy,4,Gegnerx20,Gegnery20)
          Gegnerx20 = 1000
          Gegnery20 = Random(600-SpriteHeight(4))
          Player(0)\Punkte+5
          Player(0)\Geld+5
        EndIf
        If SpritePixelCollision(1,Mausx,Mausy,4,Gegnerx21,Gegnery21)
          Gegnerx21 = 1000
          Gegnery21 = Random(600-SpriteHeight(4))
          Player(0)\Punkte+5
          Player(0)\Geld+5
        EndIf
        If SpritePixelCollision(1,Mausx,Mausy,4,Gegnerx22,Gegnery22)
          Gegnerx22 = 1000
          Gegnery22 = Random(600-SpriteHeight(4))
          Player(0)\Punkte+5
          Player(0)\Geld+5
        EndIf
      EndIf
      
      If Shotdelay > 0
        Shotdelay-1
      EndIf
      
      If Mausx > 800-SpriteWidth(1) : Mausx = 800-SpriteWidth(1) : EndIf
      If Mausy > 600-SpriteHeight(1) : Mausy = 600-SpriteHeight(1) : EndIf
      
      If Player(0)\Punkte > 49
        DisplayTransparentSprite(4,Gegnerx2,Gegnery2)
        Gegnerx2-3
      EndIf
      If Player(0)\Punkte > 139
        DisplayTransparentSprite(4,Gegnerx3,Gegnery3)
        Gegnerx3-3
      EndIf
      If Player(0)\Punkte > 299
        DisplayTransparentSprite(4,Gegnerx4,Gegnery4)
        Gegnerx4-3
      EndIf
      If Player(0)\Punkte > 399
        DisplayTransparentSprite(4,Gegnerx5,Gegnery5)
        Gegnerx5-2
        Gegnerx4+1
        Gegnerx3+1
        Gegnerx2+1
        Gegnerx+1
      EndIf
      If Player(0)\Punkte > 499
        DisplayTransparentSprite(4,Gegnerx6,Gegnery6)
        Gegnerx6-2
      EndIf
      If Player(0)\Punkte > 599
        DisplayTransparentSprite(4,Gegnerx7,Gegnery7)
        Gegnerx7-2
        DisplayTransparentSprite(4,Gegnerx8,Gegnery8)
        Gegnerx8-2
      EndIf
      If Player(0)\Punkte > 699
        DisplayTransparentSprite(4,Gegnerx9,Gegnery9)
        Gegnerx9-1
        DisplayTransparentSprite(4,Gegnerx10,Gegnery10)
        Gegnerx10-1
        Gegnerx8+1
        Gegnerx7+1
        Gegnerx6+1
        Gegnerx5+1
        Gegnerx4+1
        Gegnerx3+1
        Gegnerx2+1
        Gegnerx+1
      EndIf
      If Player(0)\Punkte > 749
        DisplayTransparentSprite(4,Gegnerx11,Gegnery11)
        Gegnerx11-1
        DisplayTransparentSprite(4,Gegnerx12,Gegnery12)
        Gegnerx12-1
        DisplayTransparentSprite(4,Gegnerx13,Gegnery13)
        Gegnerx13-1
      EndIf
      If Player(0)\Punkte > 799
        DisplayTransparentSprite(4,Gegnerx14,Gegnery14)
        Gegnerx14-1
        DisplayTransparentSprite(4,Gegnerx15,Gegnery15)
        Gegnerx15-1
        DisplayTransparentSprite(4,Gegnerx16,Gegnery16)
        Gegnerx16-1
      EndIf
      If Player(0)\Punkte > 849
        DisplayTransparentSprite(4,Gegnerx17,Gegnery17)
        Gegnerx17-1
        DisplayTransparentSprite(4,Gegnerx18,Gegnery18)
        Gegnerx18-1
        DisplayTransparentSprite(4,Gegnerx19,Gegnery19)
        Gegnerx19-1
        DisplayTransparentSprite(4,Gegnerx20,Gegnery20)
        Gegnerx20-1
        DisplayTransparentSprite(4,Gegnerx21,Gegnery21)
        Gegnerx21-1
        DisplayTransparentSprite(4,Gegnerx22,Gegnery22)
        Gegnerx22-1
      EndIf
      If Player(0)\Punkte > 899
        Gegnerx-1
      EndIf
      If Player(0)\Punkte > 919
        Gegnerx2-1
        Gegnerx3-1
      EndIf
      If Player(0)\Punkte > 979
        Gegnerx4-1
        Gegnerx5-1
      EndIf
      
      If Gegnerx < 0-SpriteWidth(4) : Gegnerx = 950 : Player(0)\Leben-1 : PlaySound(2) : EndIf
      If Gegnerx2 < 0-SpriteWidth(4) : Gegnerx2 = 950 : Player(0)\Leben-1 : PlaySound(2) : EndIf
      If Gegnerx3 < 0-SpriteWidth(4) : Gegnerx3 = 950 : Player(0)\Leben-1 : PlaySound(2) : EndIf
      If Gegnerx4 < 0-SpriteWidth(4) : Gegnerx4 = 950 : Player(0)\Leben-1 : PlaySound(2) : EndIf
      If Gegnerx5 < 0-SpriteWidth(4) : Gegnerx5 = 950 : Player(0)\Leben-1 : PlaySound(2) : EndIf
      If Gegnerx6 < 0-SpriteWidth(4) : Gegnerx6 = 950 : Player(0)\Leben-1 : PlaySound(2) : EndIf
      If Gegnerx7 < 0-SpriteWidth(4) : Gegnerx7 = 950 : Player(0)\Leben-1 : PlaySound(2) : EndIf
      If Gegnerx8 < 0-SpriteWidth(4) : Gegnerx8 = 950 : Player(0)\Leben-1 : PlaySound(2) : EndIf
      If Gegnerx9 < 0-SpriteWidth(4) : Gegnerx9 = 950 : Player(0)\Leben-1 : PlaySound(2) : EndIf
      If Gegnerx10 < 0-SpriteWidth(4) : Gegnerx10 = 950 : Player(0)\Leben-1 : PlaySound(2) : EndIf
      If Gegnerx11 < 0-SpriteWidth(4) : Gegnerx11 = 950 : Player(0)\Leben-1 : PlaySound(2) : EndIf
      If Gegnerx12 < 0-SpriteWidth(4) : Gegnerx12 = 950 : Player(0)\Leben-1 : PlaySound(2) : EndIf
      If Gegnerx13 < 0-SpriteWidth(4) : Gegnerx13 = 950 : Player(0)\Leben-1 : PlaySound(2) : EndIf
      If Gegnerx14 < 0-SpriteWidth(4) : Gegnerx14 = 950 : Player(0)\Leben-1 : PlaySound(2) : EndIf
      If Gegnerx15 < 0-SpriteWidth(4) : Gegnerx15 = 950 : Player(0)\Leben-1 : PlaySound(2) : EndIf
      If Gegnerx16 < 0-SpriteWidth(4) : Gegnerx16 = 950 : Player(0)\Leben-1 : PlaySound(2) : EndIf
      If Gegnerx17 < 0-SpriteWidth(4) : Gegnerx17 = 950 : Player(0)\Leben-1 : PlaySound(2) : EndIf
      If Gegnerx18 < 0-SpriteWidth(4) : Gegnerx18 = 950 : Player(0)\Leben-1 : PlaySound(2) : EndIf
      If Gegnerx19 < 0-SpriteWidth(4) : Gegnerx19 = 950 : Player(0)\Leben-1 : PlaySound(2) : EndIf
      If Gegnerx20 < 0-SpriteWidth(4) : Gegnerx20 = 950 : Player(0)\Leben-1 : PlaySound(2) : EndIf
      If Gegnerx21 < 0-SpriteWidth(4) : Gegnerx21 = 950 : Player(0)\Leben-1 : PlaySound(2) : EndIf
      If Gegnerx22 < 0-SpriteWidth(4) : Gegnerx22 = 950 : Player(0)\Leben-1 : PlaySound(2) : EndIf
      
      StartDrawing(ScreenOutput())
      DrawingMode(#PB_2DDrawing_Transparent)
      ;DrawingFont(FontID(1))
      DrawText(10,10,"Punkte: "+Str(Player(0)\Punkte))
      DrawText(120,10,"Leben: "+Str(Player(0)\Leben))
      DrawText(210,10,"Geld: "+Str(Player(0)\Geld))
      StopDrawing()
      
      If Munition = 1
        DisplayTransparentSprite(2,790-SpriteWidth(2),590-SpriteHeight(2))
      ElseIf Munition = 2
        DisplayTransparentSprite(2,790-SpriteWidth(2),590-SpriteHeight(2))
        DisplayTransparentSprite(2,765-SpriteWidth(2),590-SpriteHeight(2))
      ElseIf Munition = 3
        DisplayTransparentSprite(2,790-SpriteWidth(2),590-SpriteHeight(2))
        DisplayTransparentSprite(2,765-SpriteWidth(2),590-SpriteHeight(2))
        DisplayTransparentSprite(2,740-SpriteWidth(2),590-SpriteHeight(2))
      ElseIf Munition = 4
        DisplayTransparentSprite(2,790-SpriteWidth(2),590-SpriteHeight(2))
        DisplayTransparentSprite(2,765-SpriteWidth(2),590-SpriteHeight(2))
        DisplayTransparentSprite(2,740-SpriteWidth(2),590-SpriteHeight(2))
        DisplayTransparentSprite(2,715-SpriteWidth(2),590-SpriteHeight(2))
      ElseIf Munition = 5
        DisplayTransparentSprite(2,790-SpriteWidth(2),590-SpriteHeight(2))
        DisplayTransparentSprite(2,765-SpriteWidth(2),590-SpriteHeight(2))
        DisplayTransparentSprite(2,740-SpriteWidth(2),590-SpriteHeight(2))
        DisplayTransparentSprite(2,715-SpriteWidth(2),590-SpriteHeight(2))
        DisplayTransparentSprite(2,690-SpriteWidth(2),590-SpriteHeight(2))
      EndIf
      
      DisplayTransparentSprite(1,Mausx,Mausy)
        Mausx = MouseX()
        Mausy = MouseY()
        
      If Player(0)\Leben < 1
        CloseScreen()
        MessageRequester("Schade...","Punkte: "+Str(Player(0)\Punkte)+Chr(10)+"Geld: "+Str(Player(0)\Geld)+Chr(10)+Chr(10)+"Gesamt: "+Str(Player(0)\Punkte+Player(0)\Geld))
        End
      EndIf
    
    EndIf
  EndIf
  ExamineKeyboard() ;Diese Funktion ruft man erst unmittelbar vor dem Verarbeiten der abgefragten Eingaben auf! ;)
Until KeyboardPushed(#PB_Key_Escape)
mknjc
Beiträge: 217
Registriert: 09.09.2006 12:59

Beitrag von mknjc »

Das spiel ist schon lustig. Nur die Grafik der Munition ist ein wenig komisch.

@hardfalcon

Vieleicht noch bei den LoadSprite und LoadSound gucken ob alles richtig geladen ist.

Mfg mknjc
Ich nutze PureBasic 4.02 unter Linux und Windows.

Momentane Projekte:
Das geheimste aller geheimen Projekte... FPBC
Antworten