problem mit schusskollision

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

streaker

Betreff: problem mit schusskollision

BeitragDo, Aug 26, 2004 16:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab ein Problem mit der Kollision von dem schuss1 und der spieler2,
denn der Schuss geht nur durch ohne das die leben abgezogen werden.
Wenn ihr wisst woran das liegt schreibt es bitte.
Danke schonmal im vorraus !! Very Happy

-----------------------------------------------
Graphics 640,480,0,1
SetBuffer BackBuffer ()

spieler1 = LoadImage("spieler1.bmp")
spieler2 = LoadImage("spieler2.bmp")
schuss1 = LoadImage ("schuss1.bmp")
schuss2 = LoadImage ("schuss2.bmp")
sterne = LoadImage ("sterne.bmp")

sp1x = 100
sp1y = 300
sp2x = 500
sp2y = 300

Dim Rak(20,2)

Lebensp1 = 100
Lebensp2 = 100

Repeat ;Hauptschleife
Cls
Print Lebensp2

;Randkollision Spieler1
If sp1x < 0 Then sp1x = 0
If sp1x > 605 Then sp1x = 605
If sp1y < 0 Then sp1y = 0
If sp1y > 445 Then sp1y = 445

;Rankollision Spieler2

If sp2x < 0 Then sp2x = 0
If sp2x > 605 Then sp2x = 605
If sp2y < 0 Then sp2y = 0
If sp2y > 445 Then sp2y = 445
;---------------------
halter1x = sp1x -10
halter2x = sp2x +10

;----------------------
H = H+1
If H = 200 Then H = 1
TileBlock sterne,H,0
;----------------------

DrawImage spieler1,sp1x,sp1y
DrawImage spieler2,sp2x,sp2y

;Bedingung für Rakete
If KeyHit(57) Then
Schuss = Schuss +1
If Schuss = 11 Then Schuss =1
Rak(Schuss,0) = 1
Rak(Schuss,1) = sp1x +48
Rak(Schuss,2) = sp1y +22
EndIf

;Rakete zeichnen

For I = 1 To 10
If Rak(I,0) = 1 Then
DrawImage schuss1, Rak(I,1),Rak(I,2)
Rak(I,1) = Rak(I,1) + 10
EndIf
Next

;Bewegung abfragen
If KeyDown (17) = 1 Then sp1y = sp1y -2
If KeyDown (31) = 1 Then sp1y = sp1y +2
If KeyDown (32) = 1 Then sp1x = sp1x +2
If KeyDown (30) = 1 Then sp1x = sp1x -2

If KeyDown (200) = 1 Then sp2y = sp2y -2
If KeyDown (208) = 1 Then sp2y = sp2y +2
If KeyDown (205) = 1 Then sp2x = sp2x +2
If KeyDown (203) = 1 Then sp2x = sp2x -2

;

If ImagesCollide (spieler1,sp1x,sp1y,0,spieler2,sp2x,sp2y,0) Then
sp1x = halter1x
sp2x = halter2x
EndIf

If ImagesCollide (schuss1,Rak(I,1),Rak(I,2),0,spieler2,sp2x,sp2y,0) Then
Lebensp2 = Lebensp2 - 10
EndIf


Flip
Until KeyHit (1);Ende der Hauptschleife
-------------------------------------------------
Das wars, ich hoffe es ist nicht zu unverständlich
 

Dom

BeitragDo, Aug 26, 2004 16:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich kenne mich zwar nciht so sher mit BB aus aber müsste vor dem:
If ImagesCollide (schuss1,Rak(I,1),Rak(I,2),0,spieler2,sp2x,sp2y,0) Then
nocht auch noch ein For?
Also:
Code: [AUSKLAPPEN]

For I = 1 To 10
If ImagesCollide (schuss1,Rak(I,1),Rak(I,2),0,spieler2,sp2x,sp2y,0) Then
 Lebensp2 = Lebensp2 - 10
EndIf
Next

?

Bms

BeitragDo, Aug 26, 2004 17:02
Antworten mit Zitat
Benutzer-Profile anzeigen
jep. ich würde dann aber noch die rakete entfernen.

streaker

BeitragDo, Aug 26, 2004 17:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich das mit der For Schleife mach dann zieht es 60 Punkte auf einmal ab !! (hat wenigstens mal was abgezogen). 8)
Muss noch was anderes sein.

rambo256

BeitragDo, Aug 26, 2004 17:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie Bms schon sagte,musst du die rakete entfernen.
Das machst du,wenn ich deine code richtig interpretiere,indem du
den Wert von diesem dim-Feld: Code: [AUSKLAPPEN]
 Rak(Schuss,0) = 1

aud 0 setzt.
Asus F53z

Das Leben ist eine reine Konkatenation...

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group