schneller collision abfrage

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

hitokiri

Betreff: schneller collision abfrage

BeitragSa, Apr 02, 2005 23:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab da gerade so nachgedacht zwecks bullets erstellen und collision checken in 2D.... angenommen ich habe 2 enemy types auf dem bildschirm, wären und ich wüsste die width und die position der bullets, die der enemies weiss ich ja om typ her, anstatt nem imagesoverlap erstmal nur zu prüfen ob überhaupt von der y koordinate her theoretisch bullet mit enemy überlappt bevor ich ein imageoverlap mache ?
(hoffe irgendjemand versteht was ich sagen will)
 

Apocalyptic

BeitragSa, Apr 02, 2005 23:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Was du machen willst habe ich verstanden. Deine Frage jedoch nicht...

Die von dir beschriebene Methode ist möglich und so kannst du sicherlich etwas Rechenzeit sparen.
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]
 

hitokiri

BeitragSa, Apr 02, 2005 23:40
Antworten mit Zitat
Benutzer-Profile anzeigen
;rock height = 100
;bullet height = 50
For b.bullets= Each bullet
For r.rock = Each rock
If b\y >=r\y And b\y <= r\y+50 Then
imageoverlap oder nochmal das gleiche spiel mit x

das wär mal beispielcode für bullet type und rock type.
sinnvoll oder rechenzeit zuwachs minimal ?

unsinn--- rechenzeit verringerung natürlich Embarassed
 

Apocalyptic

BeitragSo, Apr 03, 2005 0:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Probiers aus. Speichere dazu den Wert, den Millisecs() zurückgibt in eine Variable, ermittle in eine For-Next Schleife x-mal, ob eine Kollision stattfindet. Ziehe dann die Variable von vorher von dem neuen Millisecs()-Wert ab. Jetzt hast du die Zeit, die die Kollisionsüberprüfung benötigt. Und das gerade beschriebene wendest du für beide Kollisionsüberprüfungen an, und vergleichst.

BlitzBasic: [AUSKLAPPEN]
t1=MilliSecs()
For i=0 To 10000
Kollision1()
Next
t2=MilliSecs()
For i=0 To 10000
Kollision2()
Next
t3=MilliSecs()
Print t2-t1
Print t3-t2
WaitKey()
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]
 

hitokiri

BeitragSo, Apr 03, 2005 0:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay, werd ich mal machen. Dachte, dass es vielleicht irgendwo schonmal jemand ausprobiert hat und ich mir die tipp arbeit sparen kann Laughing .
Hab mir mal Shadows Speedoptimierungstut angeschaut aber da stand nichts drüber drin, wollte einfach nur wissen ob das schneller ist als rectoverlap.
denn bei rectoverlap oder imageoverlap hätte ich ja nur ein for next, hier ja für x zwei falls y overlapped.
 

hitokiri

BeitragSo, Apr 03, 2005 1:05
Antworten mit Zitat
Benutzer-Profile anzeigen
und noch ne hypothetische frage....
nehmen wir das beispiel 2D shooter vertikal scroller, gegner kommen von rechts, dann könnte ich doch theoretisch ,wenn ich bullet als type habe und eh die bullets auf collision checke, das vor dem ship / alien collision überprüfen, und wenn dann der first bullet keine collision hatte davon ausgehen dass der player auf keinen fall mit irgendwas zusammenstösst das von rechts kommt, höchstens wenn noch was hinter ihm ist und er zurückfliegt, also mir die player kollisions überprüfung in dem beispiel komplett sparen wenn ich ne flag auf 1 setze wenn first bullet nicht mit irgendwas zusammengestossen ist...oder ?
(hoffe irgendjemand blickt auch was ich damit meine)

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group