Kollisionsabfrage Player-Level (3D Jump'n'Run)
Übersicht

MauBetreff: Kollisionsabfrage Player-Level (3D Jump'n'Run) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Moin ![]() Modelliert man dazu am besten das ganze Level als ein einziges 3D-Modell und prüft dann auf Box(Player)-Polygon(Level)-Kollision? Ist das nicht ziemlich langsam? Welche Möglichkeiten gäbe es noch? Und wie findet man dann (am effizientesten) heraus, ob der Spieler gerade auf einer Falle etc. steht? Durch eine simple Positionsabfrage oder wieder durch Kollisionscheck? Oder mit Pivots? Was ist am schnellsten? Möchte nicht erst tagelang daran coden, um dann festzustellen, daß meine Lösung viel zu uneffizient ist. Hat jemand ein paar grundlegende Tipps, wie das in der Regel gemacht wird? |
||
![]() |
pokop |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mach es am besten mit dem befehl:
BlitzBasic: [AUSKLAPPEN]
Schau am besten mal auf www.Blitzbase.de Da sind viele gute Tutorials |
||
Mau |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hat denn hier keiner mehr die Konzentration, ein Posting RICHTIG zu lesen? Seufz... dann halt nicht. | ||
BurningSoulBetreff: Kollisionsabfrage |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi
Also die Antwort meines vorredners war zwar korreckt, aber natürlich auch was kurz! Also , die Kollisionsabfrage gliedert sich in mehrere Teile. Als erstes musst Du Dir mal mehrere sogenannte Kollisionstypen ausdenken; Dazu tipps Du BlitzBasic: [AUSKLAPPEN]
hierbei ist MeinEntity das Handle eines Onjektes, und die zahl am besten eine Konstante - es geht aber auch mit reinen zahlen - weise also Deiner Welt, und allen objekten, die die Welt miteinschliesst, und die bei der Kollisionsabfrage gleich behandelt werden soll, die gleiche Zahl zu - ich schlage vor : Eins! Weise nun mit dem selben Befehl Deinem Spieler Entity eine ANDERE zahl zu , z.b 2 ! nun führst Du in Deiner Hauptschleife immer genau einmal den Befehl Collisions durch, und zwar so: BlitzBasic: [AUSKLAPPEN]
die erste zahl dabei ist der typ deines spielers , die zweite der typ des objektes! dabei ist zu beachten, das dies ALLE objekte checkt! und sämtliche Bewegungen durch den level automatisch verhindert - noclip ist nur noch durch zuweisung eines anderen entitytypes oder nicht mehr abfragen der collisionen möglich! willst du nun genau wissen, wer wen berührt hat, so schlage mal die Befehle BlitzBasic: [AUSKLAPPEN]
nach Tipp : am einfachsten schlägst Du nach, indem Du hier in meinem Post auf die blauen Befehle klickst mit der Maus - denn alle Befehle, die in BB-Code gepostet wurden, werden automatisch zu hyperlinks gemacht! Da Du am besten lernst, indem Du selber etwas ausprobierst, hier nur die Allgemeine vorgehensweise: man checkt , ob mehr als eine kollision stattgefunden hat, und zwar in einer schleife, und reagiert dann unterschiedlich, je nachdem, was alles berührt wurde, denn die berührung mit der Welt könnte z.b anzeigen, das der Spieler wieder auf dem Boden ist, und wieder springen kann (was er ja nicht können sollte, wenn er grade in der Luft hängt) , während die Berührung mit einer Mine in der Regel ganz andere Folgen hat .... ![]() wünsche viel Erfolg und Spass beim coden, und berichte uns mal ob du Erfolg hattest Mfg, Euer Soul ! |
||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
DEfiniere bitte, das 3D Jump and Run,
ala, Mario, TGombraider, oder Satan Sonst, wird es wohl etwas schwer, dir das richtige zusagen. |
||
between angels and insects |
![]() |
stfighter01 |
![]() Antworten mit Zitat ![]() |
---|---|---|
an und für sich sollte ein kollisionscheck von 1nem player mit der umgebung ausreichend schnell funktionieren.
zur performanceverbesserung kannst du ja alle gegner ausser sichtweite ausblenden u. einfrieren u. ihre collisionstypen wegnehmen. desweiteren gäbe es noch die möglichkeit von externen Physikengines. allerdings brauchts da eine gewisse zeit um sich hineinzuarbeiten. mfg stfighter |
||
Denken hilft! |
Gerhard |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Schau doch in die 3D-Samples.
Zum Beispiel in: Open DNA\Nebula runner. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group