problem mit schusskollision
Übersicht

![]() |
streakerBetreff: problem mit schusskollision |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 !! ![]() ----------------------------------------------- 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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
jep. ich würde dann aber noch die rakete entfernen. | ||
![]() |
streaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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... |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group