Frage zur Kollision(Erledigt kann Geclosed werden)

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Blitzard

Betreff: Frage zur Kollision(Erledigt kann Geclosed werden)

BeitragDo, Dez 29, 2005 12:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute ich hab ein Problem bei der Kollision.

Also wenn ich auf den Gegner Schieß geht er kaputt. Jetzt wollt ich es so machen einen EnergieZähler für mein Schiff einzubauen . Der gegner schießt auch und scheint auch zu treffen jedoch geht die Energie nicht runter. das ist mein Problem

Also hier mein Code
(Des is der Code aus einem gewissen Buch aber ihr könnt mir glauben das ich versteh was da drin steht^^.Und nicht über die vielen For Schleifen wunderen^^, Ich mag die einfach Twisted Evil Rolling Eyes Rolling Eyes Wink

Also hier mein Code

BlitzBasic: [AUSKLAPPEN]

AppTitle \"Star-Ranger\"
Graphics 1024,768
SetBuffer BackBuffer()

Hinter = LoadImage(\"sterne.bmp\")
Schiff = LoadImage(\"Schiff.bmp\")
Schuss = LoadImage(\"Schuss.bmp\")
GegnerImage = LoadImage(\"Gegner.bmp\")
GegnerSch = LoadImage(\"GegnerSch.bmp\")
Explosion = LoadAnimImage (\"Explosion.bmp\",60,46, 0,6)


Dim Sch(100,2)
Dim Gegner(8,3)
Dim GegnerTot(5,1)
Dim FeindSch(100,2)





MaskImage GegnerImage ,255,0,255
MaskImage Schiff ,255,0,255
MaskImage Schuss ,255,0,255
MaskImage GegnerSch ,255,0,255
X=300
Y=700
GegnerEnergie = 100
SpielerEnergie = 100


;Hauptschleife
Repeat

Cls







;BildschirmBewegung
I = I + 2
If I=99999999999999999999 Then I=0
TileBlock Hinter,0,I
;BildschirmBewegung(ende)
;Schiff
DrawImage Schiff ,X,Y
If KeyDown(200) Then Y = Y-3
If KeyDown(208) Then Y = Y+3
If KeyDown(205) Then X = X+3
If KeyDown(203) Then X = X-3
;Schiff(ende)



;Randmakierung
If X>920 Then X=920
If X<0 Then X=0
If Y>650 Then Y=650
If Y<0 Then Y=0
;Randmakierung(ende)
;Schuss
If KeyHit(57) Then
Schuss2 = Schuss2 + 1
If Schuss2 = 21 Then Schuss2 = 1
Sch(Schuss2,0) = 1
Sch(Schuss2,1) = X+29
Sch(Schuss2,2) = Y
EndIf

For S = 1 To 100
If Sch(S,1) < 0 Then Sch(S,0) = 0
If Sch(S,0) = 1 Then
DrawImage Schuss, Sch(S,1), Sch(S,2)
Sch(S,2) = Sch(S,2) - 10
EndIf
Next
;Schuss(ende)
;FeindSchuss
For P = 1 To 5
If Gegner(P,1) = X Then
Schuss3 = Schuss3 + 1
If Schuss3 = 2 Then Schuss3 = 1
FeindSch(Schuss3,0) = 1
FeindSch(Schuss3,1) = Gegner(P,1)
FeindSch(Schuss3,2) = Gegner(P,2)
EndIf
For A = 1 To 100
If FeindSch(A,1) < 0 Then FeindSch(A,0) = 0
If FeindSch(A,0) = 1 Then
DrawImage GegnerSch , FeindSch(P,1), FeindSch(P,2)
FeindSch(A,2) = FeindSch(A,2) +6
EndIf
Next
Next
;FeindSchuss(ende)


;Feind
For F = 1 To 5
If Gegner(F,0) = 0 Then
Gegner(F,0) = Rand(100,400)
Gegner(F,1) = Rand(-20,1024)
Gegner(F,2) = Rand(-100,0)
EndIf


If Gegner(F,0) <> -1 Then
Gegner(F,2) = Gegner(F,2) + 1
Gegner(F,1) = 384 + Cos( Gegner(F,2) ) * Gegner(F,0)
EndIf

If Gegner(F,2) > 768 Then Gegner(F,0) = 0
DrawImage GegnerImage, Gegner(F,1),Gegner(F,2)

Next

;Feinde(ende)
;Kollision
For C = 1 To 100 ;Collision
If Sch(C,0) <> 0 Then
For K = 1 To 5
If ImagesOverlap (GegnerImage, Gegner(K,1), Gegner(K,2), Schuss, Sch(C,1), Sch(C,2)) Then
Gegner(K,0) = -1
If ImagesOverlap(GegnerSch , FeindSch(K,1) , FeindSch(K,2),Schiff, X ,Y) Then
SpielerEnergie = SpielerEnergie - 100
If SpielerEnergie <= 0 Then End



EndIf
EndIf
Next
EndIf
Next
;Kollison(ende)
;Explosion
For F = 1 To 5
If Gegner(F,0) = -1 Then
If GegnerTot(F,1) + 100 < MilliSecs() Then
GegnerTot(F,0) = GegnerTot(F,0) + 1
GegnerTot (F,1) = MilliSecs()
If GegnerTot(F,0) = 6 Then
GegnerTot(F,0) = 0
GegnerTot(F,1) = 0
Gegner(F,0) = 0
EndIf
EndIf
DrawImage Explosion ,Gegner(F,1) ,Gegner(F,2) ,GegnerTot(F,0)
EndIf
Next

;Explosion(ende)
Flip
Until KeyHit(1)

;Programm Ende


Danke im Vorraus Laughing

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group