JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=4510bf7f01503d62f9184f71e18646f0Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Indoor-Level
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
schneidi74
Senior JLI'ler



Anmeldedatum: 14.05.2004
Beiträge: 243

Medaillen: Keine

BeitragVerfasst am: 15.08.2005, 14:05    Titel: Indoor-Level Antworten mit Zitat

Hallöchen,

ich wollte im Bereich indoor-rendering einen Raum mit einem 3D Editor erstellen und als x-file laden.

Eine Kollision mit den Wänden festzustellen sollte ja relativ simpel sein.

Allerdings nehmen wir einmal an, das sich in dem Raum eine Treppe befindet. Bewege ich jetzt den Spieler, wird vermutlich mit den Flächen der Treppe eine Kollision feststellen und somit wird mein spieler nicht weitergehen. Wie kann ich am besten feststellen ob die Kollision mit einer Wand oder einem "begehbaren" object stattfindet?

Oder sollte man soetwas wie eine Treppe eher separat erstellen und extra laden?

Danke im voraus...
_________________
-+- SchNeiDi74 -+-
-+- www.creative-games.de -+-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 15.08.2005, 14:15    Titel: Antworten mit Zitat

du könntest bei jedem Check deine Figur um maxTreppenStufe anheben dann testest du ob oben genug Platz dafür ist, wenn ja testest du ob maxTreppenStufe*2 unter dir etwas ist, wenn ja plazierst du die höhe so das die Figur genau auf dem Boden ist, alles was tiefer ist kann in die gravitation einbezogen werden, alles was höher ist kann nur übersprungen werden oder ist gar unmöglich zu überwinden.

Sicher gibts noch andere Lösungen, die flog mir nur grade im Kopf rum.
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
schneidi74
Senior JLI'ler



Anmeldedatum: 14.05.2004
Beiträge: 243

Medaillen: Keine

BeitragVerfasst am: 15.08.2005, 14:54    Titel: Antworten mit Zitat

Na mir geht's ja hauptsächlich erstmal darum, wie ich am besten rausfinde, ob es überhaupt eine Treppe ist oder eine Wand wo mein Spielerchen vorklatscht... Zumal man ja bei dem "besteigen" einer Treppe die Animation der Figur ändern müsste, da es ja doch anders aussieht wenn man die treppe hochgeht oder normal geradeaus läuft.

Meine erste Überlegung war zu prüfen wie hoch das Vertice mit der Kollision ist?! Halte das aber noch nicht für die dollste lösung.
_________________
-+- SchNeiDi74 -+-
-+- www.creative-games.de -+-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
foreach
ehem. hanse



Anmeldedatum: 08.05.2004
Beiträge: 183

Medaillen: Keine

BeitragVerfasst am: 15.08.2005, 15:36    Titel: Antworten mit Zitat

du machst 2 modelle eins für die graphik und eins für die kollision. im Kollisionsmodel kommt stat der Treppe einfach nur ne schiefe Fläche hat die einen bestimmten Winkel geht der Spieler die Treppe hinauf.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
schneidi74
Senior JLI'ler



Anmeldedatum: 14.05.2004
Beiträge: 243

Medaillen: Keine

BeitragVerfasst am: 15.08.2005, 15:42    Titel: Antworten mit Zitat

ah, gute idee, das werd ich testen... Tausend Dank!!!
_________________
-+- SchNeiDi74 -+-
-+- www.creative-games.de -+-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 15.08.2005, 16:07    Titel: Antworten mit Zitat

Noch einfacher ist es, im Kollisionsmodell nur die begehbaren Bereiche zu speichern, also nur die Fussböden und Treppenschrägen. Wo die Spielfigur auf keiner Ebene läuft (könnte), darf sie auch nicht hin...
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
schneidi74
Senior JLI'ler



Anmeldedatum: 14.05.2004
Beiträge: 243

Medaillen: Keine

BeitragVerfasst am: 15.08.2005, 16:34    Titel: Antworten mit Zitat

Noch besser die Idee, kann man ja mit einem kleinen Editor realisieren.

Erstmal danke euch allen
_________________
-+- SchNeiDi74 -+-
-+- www.creative-games.de -+-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 15.08.2005, 22:13    Titel: Antworten mit Zitat

schneidi74 hat Folgendes geschrieben:
Noch besser die Idee, kann man ja mit einem kleinen Editor realisieren.

Erstmal danke euch allen

Genau, das wäre wohl auch die schnellste Methode. Am besten machst du dir ein eigenes Levelformat und speicherst dort dann, was ne Treppe und was normaler Boden ist Wink
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 16.08.2005, 10:34    Titel: Antworten mit Zitat

Noch ne Idee am Rande:
dieser 2. Level besteht ja prinzipiell nur aus 3D-Polygonen, welche man extrem gut dazu verwenden kann, eine Map zu zeichnen (Automap-Funktion)
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
schneidi74
Senior JLI'ler



Anmeldedatum: 14.05.2004
Beiträge: 243

Medaillen: Keine

BeitragVerfasst am: 16.08.2005, 10:48    Titel: Antworten mit Zitat

Du meinst eine Karte wo der Spieler sehen kann wo er ist, oder was meinst du?
_________________
-+- SchNeiDi74 -+-
-+- www.creative-games.de -+-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
GreveN
JLI Master


Alter: 37
Anmeldedatum: 08.01.2004
Beiträge: 901
Wohnort: Sachsen - Dresden
Medaillen: Keine

BeitragVerfasst am: 16.08.2005, 15:33    Titel: Antworten mit Zitat

Ja, eine Automap eben. Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
schneidi74
Senior JLI'ler



Anmeldedatum: 14.05.2004
Beiträge: 243

Medaillen: Keine

BeitragVerfasst am: 17.08.2005, 20:58    Titel: Antworten mit Zitat

Hab doch ein paar Probs damit rauszufinden wo der Spieler zur Zeit ist. Ich hab die Datei als X-File vorliegen und hab jetzt nur noch "begehbare" Flächen drin.

Wie kann ich jetzt rausfinden, auf welchem Face sich der Spieler gerade befindet?

<Edit>
Ich glaub ich hab's schon... Linie senkrecht nach unten, und gucken welches Dreieck sie trifft...
</Edit>
_________________
-+- SchNeiDi74 -+-
-+- www.creative-games.de -+-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 17.08.2005, 21:50    Titel: Antworten mit Zitat

So ungefähr. Wenn sie kein Dreieck trifft, ist der Ort nicht begehbar. Der Treffpunkt selbst ist die Höhenkoordinate für die Figur. Und mit dem Winkel zwischen Boden und Senkrechte kannst du bestimmen, ob du eine Treppenanimation haben willst.
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
schneidi74
Senior JLI'ler



Anmeldedatum: 14.05.2004
Beiträge: 243

Medaillen: Keine

BeitragVerfasst am: 18.08.2005, 07:02    Titel: Antworten mit Zitat

Bin leider nicht so das Mathegenie... wie kann ich mit der Linie und dem Dreieck den Winkel errechnen?

Könnte man nicht dafür auch den Normalvektor des Dreiecks nehmen?
_________________
-+- SchNeiDi74 -+-
-+- www.creative-games.de -+-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 18.08.2005, 12:43    Titel: Antworten mit Zitat

Jepp, genau.
Du bildest das Punktprodukt der beiden Vektoren. Den Normalenvektor des Dreiecks solltest du ja haben. Für die senkrechte Linie kannst du ja einfach (0.0f,-1.0f,0.0f) nehmen. Wink
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum