Kollision vieler Objekte untereinander

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

Wipffinder

Betreff: Kollision vieler Objekte untereinander

BeitragDi, Feb 18, 2014 23:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Salü,

Falls ich in Blitz3D viele Objekte untereinander auf Kollision prüfen will, beispielsweise Spielfiguren, so kann man dies folgendermassen tun:
BlitzBasic: [AUSKLAPPEN]
;man habe jetzt einfach einmal einige Entities  :wink: wie auch immer

EntityType(entity_1, 1) ;denen weise man nun Kollisionstypen zu
EntityType(entity_2, 2)
EntityType(entity_3, 3)
EntityType(entity_4, 4)
...

;und nun wird definiert welche Kollisionen berechnet werden sollen.
Collisions 1,2, 1,2
Collisions 1,3, 1,2
Collisions 1,4, 1,2
Collisions 2,3, 1,2
Collisions 2,4, 1,2
Collisions 3,4, 1,2
Das gibt bei vier Objekten schon 6 Kollisionen, bei fünf Objekten schon 10 Kollisionen. Anzahl Kollisionen = (n-1)*n / 2 wobei n = Anzahl Objekte.
Wenn ich nun 100 Spielfiguren habe sind das 4950 Kollisionen.

Bei mehr Objekten wirds noch schlimmer.

Nun zu meiner Frage: Habt ihr / kennt ihr Lösungen für das Problem wie man das schneller berechnen könnte?
Oder habt ihr Erfahrungen mit Blitz3D und mehreren hundert Kollisionsklassen? Wird das arg langsam bei Kugel-Kugel Kollision?
Oder habe ich einen super Threat nicht gefunden der bereits das gleiche Thema hatte? Rolling Eyes

[Edit] Natürlich müssen die Kollisionen in beide Richtungen funktionieren:BlitzBasic: [AUSKLAPPEN]
Collisions 1,2,  1,2
Collisions 2,1, 1,2

Xeres

Moderator

BeitragDi, Feb 18, 2014 23:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum exakt sollte man so viele Kollisionstypen benutzen wollen? Wenn ich mich recht entsinne, kann man locker 2-3 für so ziemlich alles benutzen. Man muss ja nicht jedem Objekt einen einzigartigen Kollisionstypen geben (oder hat das Konsequenzen, an die ich mich nicht entsinne?).
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)
 

Wipffinder

BeitragDi, Feb 18, 2014 23:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Wichtig ist mir die Kollision der Objekte untereinander. Mit zwei drei Kollisionstypen kann man beispielsweise solche Kollisionen machen (wenn ich den collisions richtig verstanden habe):
- Spieler / Landschaft
- NPC / Landschaft
- Spieler / NPC
- NPC / Spieler

Aber Objekte der gleichen Kollisionsklasse kollidieren nicht untereinander. d.h das zwei NPCs nicht eine Kollision haben. Wenn sich diese aber z.B. auf einem Wegnetz bewegen, kann es sein das sie einander in die Quere kommen und so einfach durch einander laufen.

Xeres

Moderator

BeitragMi, Feb 19, 2014 0:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Man kann die Kollision zwischen ein und dem selben Kollisionstyp aktivieren, behaupte ich jetzt mal so.
Wenn niemand schneller ist, prüfe ich das morgen Mal.
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)

DAK

BeitragMi, Feb 19, 2014 12:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Collisions 1,1, 1,2 ist absolut möglich.

Wenn es dir dann darum geht herauszufinden welches Objekt mit welchem kollidiert ist verwende EntityCollided.
Gewinner der 6. und der 68. BlitzCodeCompo

Dottakopf

BeitragMi, Feb 19, 2014 15:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
 Anzahl Kollisionen = (n-1)*n / 2 wobei n = Anzahl Objekte.


Shocked Very Happy .. ne. Wäre wohl nicht Praktikabel

Code: [AUSKLAPPEN]
 100 Spielfiguren habe sind das 4950 Kollisionen


nein.. nehmen wir an du hast eine Figur(Anzahl N auf in der Welt) und ein level.. dan sind das genau 2 Kollisionen.

Spieler vs Spieler Spieler vs Level.

Soweit ich das noch im Kopf hatte sind diese Collisions Befehle dazu da, um zu definieren wie auf eine Kollision reagiert wird... Bei einer Kollision mit einer Leiter soll wohl was anderes Passieren als bei einer Kollision mit einer Levelwand.
Rechtschreibfehler gelten der allgemeinen Belustigung!
 

Wipffinder

BeitragMi, Feb 19, 2014 16:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Collisions 1,1

daran habe ich noch gar nie gedacht Shocked
Danke, Problem gelöst

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group