Ich kann keine verschiedenen Waffen in einem spiel integrier

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

sven123

Betreff: Ich kann keine verschiedenen Waffen in einem spiel integrier

BeitragSa, Sep 18, 2004 13:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich glaube Syntax und Logik mässig ist der Code in Ordnung also keine Fehler.Das Problem ist nur wenn ich die Waffe Panzerfaust wähle wird diese nicht abgeschossen verwende ich als abfrage der spacetaste aber keydown anstelle von Keyhit finktioniert auch die zweite Waffe aber ich möcht das,dass ganze mit keyhit funtz und ich finde es auserdem etwas komisch das es so nicht klappt aber man weis ja nie vieleicht habe ich einen Fehler eingebaut und finde ihn nicht!Ich habe auch schon vor die Schuss und Steuerungsabfrage Flushkeys gestelt,doch dann schieß überhaupt nichts mehr.Code: [AUSKLAPPEN]
Graphics 640,480,0,1
SetBuffer BackBuffer()
SeedRnd   MilliSecs()
framelimited=CreateTimer(80)
landscape=LoadImage("f:\landscape.bmp")
spielfigur=LoadImage("f:\spieler4711.bmp")
Flintenschuss=LoadImage("f:\Gewehrkugel.bmp")
flintenkit=LoadImage("f:\Gewehrkugel.bmp")
Figurschiest=LoadImage("f:\spieler4711schiest.bmp")
GegenerTypMotorad=LoadImage("f:\Motoradgegner.bmp")
Statusbalkenvoll=LoadImage("f:\Statusbalkenvoll.bmp")
Statusbalkenhaelfte=LoadImage("f:\Statusbalkenhälfte.bmp")
Statusbalkenrot=LoadImage("f:\Statusbalkenrot.bmp")
blood=LoadImage("f:\Blut.bmp")
Rakete=LoadImage("f:\bullet.bmp")
Global muniflinte=10
Global raketen=10
Global LebenVonSpieler=100
Global tod=0
Global wahlWaffe=0
;Die Variabelen der Spielfigur
x=0
y=250
;
fy=250
fx=300
;Feld der Gegner
Dim Motoradgegner(3,7)
;Feld für den Flintenschuss
Type schussflinte
Field existent
Field x
Field y
End Type
;
Type Panzerfaust
Field funktioniert
Field Px
Field Py
End Type
;
Repeat
Cls
;Gegner Skills
For i=0 To 2
If Motoradgegner(i,2)=0  Then
Motoradgegner(i,0)=620
Motoradgegner(i,1)=Rnd(190,365)
Motoradgegner(i,2)=1
Motoradgegner(i,3)=Rand(0.7,2)
Motoradgegner(i,4)=150
Motoradgegner(i,5)=1
Motoradgegner(i,6)=1
EndIf
Next
;Der Hintergrund
TileBlock landscape
DrawImage flintenkit,2,1
Text 15,4,muniflinte,0,0
HandleImage spielfigur,18,24
If tod=0 Then
If KeyDown(203) Then x=x-1
If KeyDown(205) Then x=x+1
If KeyDown(208) Then y=y+1
If KeyDown(200) Then y=y-1
EndIf
;
If KeyDown(3) Then wahlWaffe=1
If KeyDown(2) Then wahlWaffe=0
;Zeichnen des Statusbalken vom Gegner
For i=0 To 2
If Motoradgegner(i,4)>75 Then DrawImage Statusbalkenvoll,Motoradgegner(i,0),Motoradgegner(i,1)-3
Next
For i=0 To 2
If Motoradgegner(i,2)=1 And  Motoradgegner(i,4)<75 Then
DrawImage Statusbalkenhaelfte,Motoradgegner(i,0),Motoradgegner(i,1)-3
EndIf
Next
For i=0 To 2
If Motoradgegner(i,2)=1 And  Motoradgegner(i,4)<30 Then
DrawImage Statusbalkenrot,Motoradgegner(i,0),Motoradgegner(i,1)-3
EndIf
Next 
;Zeichnen des Statusbalken für die Spielfigur
If LebenVonSpieler>50 Then DrawImage Statusbalkenvoll,x-15,y-48
If LebenVonSpieler<50 And LebenVonSpieler>0 Then DrawImage Statusbalkenhaelfte,x-15,y-48
If LebenVonSpieler<40 And LebenVonSpieler>0 Then DrawImage Statusbalkenrot,x-15,y-48
;Kollision Spieler mit Gegnertyp Motorad
For i=0 To 2
If ImagesCollide(spielfigur,x,y,0,GegenerTypMotorad,Motoradgegner(i,0),Motoradgegner(i,1),0) And Motoradgegner(i,6)=1 And tod=0 Then
LebenVonSpieler=LebenVonSpieler-60
Motoradgegner(i,6)=0
EndIf
Next
;Spieler ist Tod
If LebenVonSpieler<0 Then
tod=1
DrawImage blood,x,y
EndIf
Text 300,4,LebenVonSpieler,1,0
;Auslösen des Schusses   
If KeyHit(57) And muniflinte>0 And tod=0 And wahlWaffe=0 Then
muniflinte=muniflinte-1
DrawImage Figurschiest,x+5,y-13
schussflinte.schussflinte=New schussflinte
schussflinte\x=x
schussflinte\y=y+5
schussflinte\existent=1
EndIf
;Auslösen der Rakete
If KeyHit(57) And raketen>0 And tod=0 And wahlWaffe=1 Then
raketen=raketen-1
DrawImage Figurschiest,x+5,y-13
Panzerfaust.Panzerfaust=New Panzerfaust
Panzerfaust\Px=x
Panzerfaust\Py=y+5
Panzerfaust\funktioniert=1
EndIf
;Löschen des Schusses nach dem er aus dem Bild ist oder wenn er mit dem Gegner kollidiert!
For schussflinte.schussflinte=Each schussflinte
If schussflinte\x>605 Or schussflinte\existent=0 Then
Delete schussflinte.schussflinte
EndIf
Next
;Löschen des Raketenschusses nach dem er aus dem Bild ist oder wenn er mit dem Gegner kollidiert!
For Panzerfaust.Panzerfaust=Each Panzerfaust
If Panzerfaust\Px>605 Or Panzerfaust\funktioniert=0 Then
Delete Panzerfaust.Panzerfaust
EndIf
Next
;Bewegung und Zeichnung der Flintenkugeln
For schussflinte.schussflinte=Each schussflinte
If schussflinte\existent=1 Then
DrawImage Flintenschuss,schussflinte\x,schussflinte\y
schussflinte\x=schussflinte\x+2
EndIf
Next
;Bewegung und Zeichnung der Raketen
For Panzerfaust.Panzerfaust=Each Panzerfaust
If  Panzerfaust\funktioniert=1 Then
DrawImage Rakete,Panzerfaust\Px,Panzerfaust\Py
Panzerfaust\Px=Panzerfaust\Px+1
EndIf
Next
;Flintenschuss kollidiert mit Gegner!
For schussflinte.schussflinte=Each schussflinte
For i=0 To 2
If ImagesCollide(GegenerTypMotorad,Motoradgegner(i,0),Motoradgegner(i,1),0,Flintenschuss,schussflinte\x,schussflinte\y,0) And schussflinte\existent=1 And Motoradgegner(i,2)=1 Then
Motoradgegner(i,4)=Motoradgegner(i,4)-20
schussflinte\existent=0
EndIf 
Next
Next
;Rakete kollidiert mit Gegner!
For Panzerfaust.Panzerfaust=Each Panzerfaust
For i=0 To 2
If ImagesCollide(GegenerTypMotorad,Motoradgegner(i,0),Motoradgegner(i,1),0,Rakete,Panzerfaust\Px,Panzerfaust\Py,0) And Panzerfaust\funktioniert=1 And Motoradgegner(i,2)=1 Then
Motoradgegner(i,4)=Motoradgegner(i,4)-90
Panzerfaust\funktioniert=0
EndIf 
Next
Next
;Wenn der Gegner stirbt
For i=0 To 2
If Motoradgegner(i,4)<0 Then
DrawImage blood,Motoradgegner(i,0),Motoradgegner(i,1)
Motoradgegner(i,5)=0
EndIf
Next
;Vorläufiges Munikit
If ImagesCollide(spielfigur,x,y,0,flintenkit,fx,fy,0) Or ImagesCollide(Figurschiest,x,y,0,flintenkit,fx,fy,0) And munigenommen=0  Then
muniflinte=muniflinte+10
munigenommen=1
EndIf
;Zeichnung und bewegung der Gegner
For i=0 To 2
If Motoradgegner(i,2)=1 And Motoradgegner(i,5)=1 Then
MaskImage GegenerTypMotorad,255,255,255
DrawImage GegenerTypMotorad,Motoradgegner(i,0),Motoradgegner(i,1)
EndIf
Next
For i=0 To 2
If Motoradgegner(i,2)=1 And Motoradgegner(i,5)=1 Then
Motoradgegner(i,0)=Motoradgegner(i,0)-Motoradgegner(i,3)
EndIf
Next
;end Gegner
For i=0 To 2
If Motoradgegner(i,2)=1 Then
If Motoradgegner(i,0)=0 Then  Motoradgegner(i,2)=0
EndIf
Next
;Zeichnung der Spielfigur und des vorläufigen Munikits
DrawImage flintenkit,fx,fy
If tod=0 Then
DrawImage spielfigur,x,y
EndIf
Flip  WaitTimer(framelimited)
Until KeyDown(1) End

thx für die Hilfe!
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will
Fertiges Projekt:Invasion der Heuschrecken

BladeRunner

Moderator

BeitragSa, Sep 18, 2004 13:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Och sven- das Keyhit den Tastaturpuffer nach Abfrage auf null setzt hatten wir doch schon oft genug, und als Langzeit-Forenuser solltest du das mindestens ein DSutzendmal gelesen haben... Crying or Very sad
Frage zu Beginn deiner Hauptschleife keyhit ab und speichere das Ergebnis in einer Variable. Diese fragst du dann ab und es sollte keine Probleme mehr geben...
Und RÜCK deinen Code ein- das ist ja abartig unübersichtlich.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

sven123

BeitragSa, Sep 18, 2004 14:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm!Sorry diese Threads sind irgendwie an mir vorbei gegngen! Embarassed
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will
Fertiges Projekt:Invasion der Heuschrecken

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group