Rechteckige Kollisionsflächen (3D)

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Nerle

Betreff: Rechteckige Kollisionsflächen (3D)

BeitragDo, Nov 22, 2007 15:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Also meine folgende Frage muss sicherlich recht unbedarft sein, aber trotzdem. Auch durch die Forensuche bin ich nun nicht klüger, da ich nichts gefunden habe, dass genau zu meinem Problem zu passen schien.

Ich möchte ein rechteckiges Objekt (Beispiel: Auto) kollisionsfähig machen.
Die Betonung liegt dabei auf rechteckig - also sind Länge und Breite nicht gleich lang, was eine kugelförmige Kollisionsfläche (EntityRadius und Collisions-Typ 1) ausschließt. Auch Kugel-Polygon-Kollision(2) funktioniert bei mir nicht; die unsichtbare Kollisionsfläche scheint trotzdem immer wieder eine Kugel zu werden.
Sogar EntityBox und Collisions-Typ 3 scheint nur Kugelförmig zu funktionieren - oder ich mach einfach was falsch.
Das verstehe ich nicht, denn wozu gibt es sonst diese 3 verschiedenen Kollisions-Typen, wenn bei mir doch immer wieder eine kugelförmige Kollision dabei herauskommt?

Wie kann man den rechteckige Objekte auch sauber rechteckig auf Kollisionen abfragen?

Zu Entity-Box habe ich auch so meine Verständnisschwierigkeiten:

Zitat:
ENTITYBOX Entity, X#, Y#, Z#, Breite#, Höhe#, Tiefe#

Entity = Identität eines Objekts (entity)
X = X-Koordinate der Kollisionbox
Y = Y-Koordinate der Kollisionbox
Z = Z-Koordinate der Kollisionbox
Breite = Breite der Kollisionbox
Höhe = Höhe der Kollisionbox
Tiefe = Tiefe der Kollisionbox


1. X,Y und Z müssen also die Koordinaten des Objekts/der Entity angeben werden, die ich mit dieser KollisionsBox ausstatten möchte?
Das verstehe ich schon nicht - die Koordinaten müsste BB doch wissen, und wenn das besagte Objekt sich bewegt, dann verändern sich diese ja auch wieder. Warum muss man hier die Koordinaten noch einmal mitteilen?

2. Wenn das besagte Objekt/Entity vor Zuweisung der Box bereits einmal rotiert worden ist (z.B. 45° nach rechts, also um die Y-Achse), wie richte ich dann die KollisionsBox richtig aus? Rotationsbefehle für die EntityBox scheint es ja nicht zu geben... *Schlauch steh* Confused

Also ich hoffe Ihr könnt mir weiterhelfen bei meinen Noob-Fragen...

Silver_Knee

BeitragDo, Nov 22, 2007 15:35
Antworten mit Zitat
Benutzer-Profile anzeigen
zu kollisionen in Blitz:
die Kollisionen fangen immer mit "Eine Kugel kollidiert" an das heißt du kannst dir nur aussuchen wie das sich nicht bewegende objekt aussieht. Hast du nun ein rechteck als "Täter" musst su das irgendwie so lösen:
Code: [AUSKLAPPEN]
   _   
 /+-+\
| |+| |
 \|_|/
 /| |\
| |+| |
 \+_+/

Also "Collisionsbälle" so arrangieren dass es annähernd einem Rechteck nahe kommt
 

Nerle

BeitragDo, Nov 22, 2007 17:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Also "Collisionsbälle" so arrangieren dass es annähernd einem Rechteck nahe kommt


Ahhh... Smile - Ja, das wäre eine Möglichkeit. Danke für den Tipp.
Ich versuch das mal irgendwie hinzukriegen.

ZaP

BeitragDo, Nov 22, 2007 17:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
ENTITYRADIUS Entity, XRadius# [,YRadius#]

 
Beschreibung Blitz3D
 
Die Anweisung ENTITYRADIUS definiert eine kugelförmige (oder ellipsenförmige) Kollisionsfläche für ein Objekt.
 
Starfare: Worklog, Website (download)
 

Nerle

BeitragDo, Nov 22, 2007 20:16
Antworten mit Zitat
Benutzer-Profile anzeigen
ZaP hat Folgendes geschrieben:
Code: [AUSKLAPPEN]
ENTITYRADIUS Entity, XRadius# [,YRadius#]

 
Beschreibung Blitz3D
 
Die Anweisung ENTITYRADIUS definiert eine kugelförmige (oder ellipsenförmige) Kollisionsfläche für ein Objekt.
 


Ja schon klar, ellipsenförmig ist sie aber nur, wenn die Y-Höhe geringer oder länger ist als die X-Breite; der X-Umfang läßt sich leider nicht ungleich verteilen, und eben das benötige ich. Und darum brächte es mir eben nichts. Auch Entity-Box scheint eben nichts zu bringen, wahrscheinlich aus den Gründen die Silver_Knee erklärt hat.
 

Nerle

BeitragDo, Nov 22, 2007 23:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry für den "Doppelpost", aber ich habe da noch ein Problem: Wenn ich meinem Rechteck-Objekt zwei Pivots, oder auch zwei unsichtbare Cubes zuweise, die ich mit jeweils einem "Kollisionsball" ausstatte und an das Rechteck-Objekt als Childs hänge, habe ich das momentan unlösbare Problem, dass diese Objekte/Pivots sich bei Kollision verschieben, d.h. sie stoppen, aber das Rechteck bewegt sich noch weiter.

Wie macht Ihr das denn!? Es kann doch nicht so schwer sein, ein rechteckiges Objekt rechteckig auf eine Kollision zu prüfen?? Shocked

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group