|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
schneidi74 Senior JLI'ler
Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 15.08.2005, 13:05 Titel: Indoor-Level |
|
|
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 |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 15.08.2005, 13:15 Titel: |
|
|
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 |
|
|
schneidi74 Senior JLI'ler
Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 15.08.2005, 13:54 Titel: |
|
|
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 |
|
|
foreach ehem. hanse
Anmeldedatum: 08.05.2004 Beiträge: 183
Medaillen: Keine
|
Verfasst am: 15.08.2005, 14:36 Titel: |
|
|
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 |
|
|
schneidi74 Senior JLI'ler
Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 15.08.2005, 14:42 Titel: |
|
|
ah, gute idee, das werd ich testen... Tausend Dank!!! _________________ -+- SchNeiDi74 -+-
-+- www.creative-games.de -+- |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 15.08.2005, 15:07 Titel: |
|
|
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 |
|
|
schneidi74 Senior JLI'ler
Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 15.08.2005, 15:34 Titel: |
|
|
Noch besser die Idee, kann man ja mit einem kleinen Editor realisieren.
Erstmal danke euch allen _________________ -+- SchNeiDi74 -+-
-+- www.creative-games.de -+- |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 15.08.2005, 21:13 Titel: |
|
|
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 _________________ 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 |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 16.08.2005, 09:34 Titel: |
|
|
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 |
|
|
schneidi74 Senior JLI'ler
Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 16.08.2005, 09:48 Titel: |
|
|
Du meinst eine Karte wo der Spieler sehen kann wo er ist, oder was meinst du? _________________ -+- SchNeiDi74 -+-
-+- www.creative-games.de -+- |
|
Nach oben |
|
|
GreveN JLI Master
Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 16.08.2005, 14:33 Titel: |
|
|
Ja, eine Automap eben. |
|
Nach oben |
|
|
schneidi74 Senior JLI'ler
Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 17.08.2005, 19:58 Titel: |
|
|
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 |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 17.08.2005, 20:50 Titel: |
|
|
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 |
|
|
schneidi74 Senior JLI'ler
Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 18.08.2005, 06:02 Titel: |
|
|
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 |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 18.08.2005, 11:43 Titel: |
|
|
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. _________________ 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 |
|
|
|
|
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
|