Kollision mehrere Objekte

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Krumu1201

Betreff: Kollision mehrere Objekte

BeitragSo, Feb 08, 2015 19:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey,

wie bekomme ich es hin mehrere Objekte in einem Feld mit sich gegenseitig kollidieren zu lassen zB: mehrere Gegner die dann bei einer Berührung die Richtung ändern.

BlitzBasic: [AUSKLAPPEN]


Type Gegner
Field x,y
;Usw.

End Type

anzahlGeg = 200

Dim gegnerfeld.Gegner(anzahlGeg)




Pseudocode

Wenn Gegner 1 trifft Gegner 2 dann Richtung ändern

Usw.

Gruß

Krumu1201

Xeres

Moderator

BeitragSo, Feb 08, 2015 19:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein Array ist dafür nicht notwendig. Die Liste des Types enthält alle Objekte, die du auch mehrfach durchgehen kannst. Beispiel:
BlitzBasic: [AUSKLAPPEN]

Graphics(800,300,0,2)

Type TGegner
Field nr%
End Type

Local i, g1.TGegner, g2.TGegner
For i = 0 To 3
g1 = New TGegner
g1\nr = i
Print("Erzeuge "+i)
Next

For g1 = Each TGegner
For g2 = Each TGegner
If g1 <> g2 Then ;* Ein Gegner darf nicht gegen sich selbst antreten
Print(g1\nr + " vs. " + g2\nr)
EndIf
Next
Next

WaitKey()
End

Du musst ggf. nur darauf achten, nicht ein Objekt mit sich selbst zu vergleichen und das ein Paar doppelt verarbeitet werden kann ("0 vs. 1" und "1 vs. 0").
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Holzchopf

Meisterpacker

BeitragSo, Feb 08, 2015 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst die innere Schlaufe verlassen, sobald g1 = g2. Damit verhinderst du, dass ein Gegner gegen sich selbst geprüft UND, dass Paare mehrfach geprüft werden.
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group