Mesh Kollision

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2, 3  Weiter

Neue Antwort erstellen

 

macues

Betreff: Mesh Kollision

BeitragMi, Okt 27, 2004 11:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich habe vor einigen Tagen begonnen mich mit Blitz Basic und 3D Modellierung auseinanderzusetzen.

Habe jetzt den Umriss eines Raumes in MilkShape erstellt und ein weiteres Mesh (Als Test eine Box) um einen "Spieler" durch den Raum zu bewegen. Bewegt sich auch schon wunderbar.
Problem:

Wie schaffe ich es nun, dass mein Mash (Spieler) nicht durch die Wände des anderen Meshs (Raum) durchläuft?

Habe schon einige Tuts gelesen und mir auch verschiedene Kollisionen angesehen. Aber irgendwie verstehe ich das nicht oder es fehlen die entscheidenen Informationen.

Brauch also Hilfe...

Bitte dran denken, ich bin Anfänger. Wink Zumindest was BB angeht.

Gruß

PinkPanther
 

macues

Betreff: Immer noch Hilfe!

BeitragDo, Okt 28, 2004 9:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Falls die Frage unverständlich ist oder irgendwas anderes nicht stimmt, so das mir keiner eine Antwort geben kann, bitte ich um Info.

Gina

BeitragDo, Okt 28, 2004 10:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

also normalerweise wird jedem Mesh ein EntityType zugewiesen. dem Spieler die 1 und dem Raum die 2. Außerdem gibst du dem Spieler noch einen EntityRadius. Wenn du dann mit Collisions 1,2,2,2 die Kollision prüfst, müßte es klappen.

Schau dir also in der Onlinehilfe mal die Befehle EntityType, EntityRadius und Collisions an.

So ganz hundertprozentig hab ich es allerdings auch noch nicht verstanden. Kann man bei EntityType eine beliebige Nummer wählen? Also nicht nur 1 und 2?

Ich hab nämlich ein weiteres Mesh hinzugefügt. Eine kleine Plattform, die sich rauf und runter bewegt. So eine Art Fahrstuhl. Und da klappt die Kollision nicht mehr. Meine Figur fällt einfach durch... Sad

Wäre also auch für jeden Tipp dankbar, Gina.
www.jk-spiele.de
 

macues

BeitragDo, Okt 28, 2004 10:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Schonmal sehr hilfreich aber was sagen mir die Zahlen!?
 

fliege

BeitragDo, Okt 28, 2004 10:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit EntityType kannst du belibige Zahlen wählen, wie zum Beispiel: 34 und 255, 1 und 3,...
Die Zahlen sind folgende:
Die eins steht für den ersten Kolisions"partner", die zweite für den zweiten, die dritte Zahl ist die Erkennungsart der Kollision, die Vierte die Reaktion.
Wer weiß was kommt.. ?
 

macues

BeitragDo, Okt 28, 2004 10:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Aha, das heißt, dass ich die verschiedenen Kollisions-Partner "nummerieren" muss!?
 

fliege

BeitragDo, Okt 28, 2004 10:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, und das machst du mit EntityType!
Wer weiß was kommt.. ?
 

macues

BeitragDo, Okt 28, 2004 10:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke! Werde es gleich mal ausprobieren.
 

macues

BeitragDo, Okt 28, 2004 10:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Ach so, und immer her mit weiteren nützlichen Typs für Kollisionen. Laughing

BladeRunner

Moderator

BeitragDo, Okt 28, 2004 10:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Macues, lade dir bitte auf www.blitzbase.de die deutsche onlinehilfe runter. Da werden alle Befehle erklärt - auch die Parameter die du angeben kannst.
@ Gina: nach meinem Verständnis (ich hab es jetzt nicht probiert) ist entitytype ein beliebiger Integer und vorallem wichtig bei entitycollided (um verschiedene Reaktionen möglich zu machen).
Collisions erwartet ja eine Form des Kollisionskörpers (Quader, Ellipsoid, oder Polygongenau) und ist somit von Entitytype insofern unabhängig da Du ja den Kollisionskörper mit entitybox ODER entityradius festlegst.

Wenn deine Kollision mit dem Fahrstuhl also nicht klappt vermute ich dass entweder a) du für den Fahstuhl keinen Kollisionstyp (am besten wohl Quader) festgelegt hast
oder b) dass man jeden Entitytype nur einmal verwenden kann (was ich wiegesagt nicht getestet habe- bin in 3D noch unbeleckt bis auf ein paar Spielereien).
Im Falle von b) wäre dann die Lösung den Fahrstuhl auf entitytype 3 zu setzen und mit einem gesonderten collisions abzufragen.
(aber wie gesagt alles theoretisch... Wink)
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Gina

BeitragDo, Okt 28, 2004 10:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe jetzt dem Fahrstuhl den EntityType 3 zugewiesen und Collisions 1,3,2,1 gewählt. Die Figur hat einen EntityRadius. Der Fahrstuhl nicht. Daher die 2 für Kugel-Polygon-Kollision.

Wenn der Fahrstuhl auf dem Weg nach unten ist, kann ich durch ihn durch hinauf springen und er fährt mit der Figur runter. Aber er fährt nicht mit ihr hoch. Ich kann entweder durch ihn durch springen, oder bleibe an der Unterseite hängen.

Habe auch schon dem Fahrstuhl einen EntityRadius zugewiesen und auf Kugel-Kugel geprüft, aber dann passiert gar nix.

Was mache ich falsch?

Tausend Dank, Gina.
www.jk-spiele.de

BladeRunner

Moderator

BeitragDo, Okt 28, 2004 10:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Versuche mal andersrum zu Prüfen (also: 3,1,2,1) - es ist möglich dass Quelle und Ziel eine Rolle dabei spielen...

EDIT: collisions falsch geschrieben. sorry Embarassed
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

macues

BeitragDo, Okt 28, 2004 10:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Na Supi, jetzt verstehe ich wieder gar nichts. Ich will einfach nur durch ein Gebäude laufen (was ich in Milkshape erstellt habe) und nicht durch den Fussboden oder die Wand schweben können.

Tutorials habe ich wie gesagt schon gelesen, aber entweder ich versteh da was falsch oder da steht nicht drinne was ich möchte.

Das mit der Hilfe funz. irgendwie nicht. Obwohl ich die EXE - Datei in das Help Verzeichnis kopiert habe. Irgendwie exestiert in dem Ordner auch keine Commands.dat. Vielleicht weil das eine Demo Version ist!?

BladeRunner

Moderator

BeitragDo, Okt 28, 2004 10:55
Antworten mit Zitat
Benutzer-Profile anzeigen
blitzbase.de hat Folgendes geschrieben:

Installation Wie integriert man nun diese wunderbare Hilfe ins BlitzBasic-Programm? Ganz einfach: Downloade zuerst die gepackte Onlinehilfe. Starte danach den Windows-Explorer und wechsele in das BlitzBasic-Verzeichnis. Dann musst du den Ordner "Help" entweder umbenennen oder löschen. Danach kann die Zip-Datei der Onlinehilfe so entpackt werden...
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

macues

BeitragDo, Okt 28, 2004 10:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Ach so, sorry habe eine andere Hilfe unter den Programmen gesaugt.

Gina

BeitragDo, Okt 28, 2004 11:13
Antworten mit Zitat
Benutzer-Profile anzeigen
BladeRunner hat Folgendes geschrieben:
Versuche mal andersrum zu Prüfen (also: 3,1,2,1) - es ist möglich dass Quelle und Ziel eine Rolle dabei spielen...

Das funktioniert leider auch nicht, weil es ja keine Polygon-Kugel-Kollision gibt. Habs jetzt mal mit ner Box probiert, aber da passiert rein gar nix. Null Kollision, egal wie groß ich die Box wähle... Sad
Ich bin mir auch nicht sicher, ob die Box sich mit bewegt oder ob sie auch wirklich am selben Fleck erstellt wird. Ich finde es auch blöd, dass man da nochmal Koordinaten angeben muss...

Irgendwie muss das doch funktionieren... Evil or Very Mad

Gina.
www.jk-spiele.de

BladeRunner

Moderator

BeitragDo, Okt 28, 2004 11:19
Antworten mit Zitat
Benutzer-Profile anzeigen
ich fürchte dass in diesem fall meine theoretischen Kenntnisse nicht ausreichen. Ich hatte der OH entnommen dass bei Kugel-Polygon kein Typ gegeben sein muss und dachte daher dass es auch umgekehrt funktioniert. hab ein wenig nit dem demoproggie in der oh rumgespielt, da funktioniert es ja einwandfrei, obwohl keiner der Körper eine Collisionsbox hat. Versuch es doch mal ganz ohne- vielleixcht geht es dann ?
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

macues

BeitragDo, Okt 28, 2004 11:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei mir funz. dass auch nicht.

Hier mal mein Quellcode. Vielleicht macht das, dass Ganze etwas verständlicher.
Ich weiß, nicht sehr sauber, aber es geht auch gerade nur ums üben.

Graphics3D 800,600
SetBuffer BackBuffer()

ClsColor 0,0,255

setup()

;Spieler laden
Global player=LoadMesh("figur.3ds")
EntityType player,2

cam = CreateCamera(player) ; Kamera1
PositionEntity cam,0,5,-8

light = CreateLight() ; Lichtquelle
RotateEntity light,90,0,0


While Not KeyDown(1) ; Solange nicht ESC gedrückt wird läuft Schleife

RotateEntity player,x#,y#,z#

If KeyDown(200) Then MoveEntity player,0,1,0 ;Hoch
If KeyDown(203) Then y#=y#+1 ;links drehen
If KeyDown(205) Then y#=y#-1 ;rechts drehen
If KeyDown(208) Then MoveEntity player,0,-1,0 ;runter
If KeyDown(57) Then MoveEntity player,0,0,1 ; Gas geben

Collisions 1,2,2,2
UpdateWorld
RenderWorld
Flip
Wend

End ; While Schleife Beenden

Function Setup()

;Haus laden
haus=LoadMesh("Haus2.3ds")
EntityType haus,1
PositionEntity haus,0,0,MeshDepth(haus)*2
RotateEntity haus,-90,90,0

End Function

BladeRunner

Moderator

BeitragDo, Okt 28, 2004 11:23
Antworten mit Zitat
Benutzer-Profile anzeigen
benutz bitte die Code-Tags.
Was mir schon auffällt: dein Level wird nicht Global geladen- die Variable ist also nach verlassen der Setup()-Funktion =0.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

macues

BeitragDo, Okt 28, 2004 11:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Was soll ich benutzen? "Code-Tags"?

Die Variable habe ich jetzt Global gemacht.

Gehe zu Seite 1, 2, 3  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group