Gravitation und Kollision
Übersicht

Scope |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
angenommen ich laufe von einem vorsprung über eine kante halt in nen "abgrund" sprich nach unten. ich würde dann nicht normal fallen sondern praktisch über die Kante "rollen". das nur als beispiel. es ist halt sicherlich einfacher ne Box als Kollisionsgrundlage zu nemen.
auch später beim ducken könnte es probleme geben. ich müsste dann (um überhaupt auf kopfhöhe ne kollision abfragen zu können) den raidus der kugel groß machen. das wiederum vergrößert natürlich auch den abstand zu ner wand, wenn ich gegen eine lauf... |
||
HW |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das mit dem Vorsprung ist eben eine Verfälschung, die man in Kauf nehmen muss.
Was du mit dem Ducken meinst verstehe ich nicht. Wieso musst du den Radius beim Ducken vergrößern? Das ist doch nicht logisch. |
||
Scope |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich habe einen fiktiven Punkt, der die Kollision mit dem Boden abfragt. (das untere Ende der Kollisions-Kugel)
die punkte an den Seiten der Kugeln (sprich der Punkt der Kugel, der z.b. den Größten x-wert hat) fragt die kollision zur seite/vorne/hinten ab. Wenn ich jetzt noch wissen will, ob ich mit dem Kopf unter einen Vorsprung passe, muss die Kugel mit dem Oberen Ende auf Kopfhöhe sein. Sprich der Radius der Kugel ist die Größe der Person/2. Der Radius ist nun leider auch die Entfernung, in der der Spieler von der Wand weg ist, da diese Kugel ja auch die Kollision mit der wand abfragt. das mein ich damit ![]() |
||
HW |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich verstehe immer noch nicht, wieso der Radius beim Ducken vergrößert werden soll.
Aber naja. Das schöne beim Ducken ist in diesem Fall, dass die Kamera dann nach unten geht, weil der Radius verringert wird. (Mit Wand meinst du in diesem Fall Boden, oder?) Ein Mesh für den Spieler ist bei einem Ego Shooter ja nicht von Bedarf. Aber im Multiplayer wäre das durchaus ein Problem. Da müsste man sich eben etwas einfallen lassen. ![]() |
||
Scope |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
äh nee wollt ich auch nich und mit wand meinte ich schon wand. ok ich probiers nochmal ![]() also: die kammera ist auf einem Punkt, nennen wir ihn cam. da man den kopf oben hat als mensch sagen wir ist der abstand zum boden 200 (einheit is ja erstma wurscht, geht um die verhältnisse). ich laufe vor eine Wand. Die Wand sollte nun sagen wir 20 vor der wand stehen bleiben. wenn ich jetzt ohne zu ducken an einen sagen wir tunneleingang renn, der zu klein zum aufrecht durchlaufen ist, sollte der player stehen bleiben, sprich kollidiert das tunnelterrain unterhalb der cam sollte er stoppen. so, nun brauche ich eine kollisionsabfrage, die den Bereich (cam als ursprung) x=-20,y=-200,z=-20 genau 40 in x richtung, 200 in y richtung und 40 in z richtung abfragen kann. ideal wäre es da einen cube zu erstellen. Mit einer Kugel kann ich zwar 200 in y richtung abfragen, habe gleichzeitig aber auch 200 in z und x richtung abgefragt, da die kugel nun mal die eigenschaft hat mit größer werdendem radius in alle richtungen zu expandieren. ![]() wie würdest du das problem mit dem Kriechen/tunnel denn angehen? |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich würde es mal damit versuchen, ein EntityRadius für den Schädel einen für den Torso und einen für die Füsse zu machen... Wenn man sich dann duckt, dann verschiebt man die Kollisionsradien einfach zusammen und wenn man wieder aufsteht gehen sie wieder ausseinander... Fertig... So ähnlich habe ich es für ein Raumschiffspiel gemacht, da diese Form mit keiner erdenklichen Kugel oder Würfel annährend nachgebildet werden konnte, habe ich einfach drei davon genommen. | ||
HW |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Scope hat Folgendes geschrieben: Die Wand sollte nun sagen wir 20 vor der wand stehen bleiben
Ich nehme an, der Spieler soll 20 vor der Wand stehen bleiben... Und ansonsten: Schau dir noch mal den Befehl ql:entityradius genau an. Du kannst einen Radius für die Waagrechte und einen optionalen Radius für die Senkrechte angeben. Dann ist das ja wirklich kein Problem. Edit: @hectic: Würde theoretisch schon gehen. Aber für den Anfang reicht auch das andere, denke ich. |
||
- Zuletzt bearbeitet von HW am So, Feb 12, 2006 18:22, insgesamt einmal bearbeitet
Scope |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
schreibfehler ![]() as man die Kugel auch in y richtung strecken kann hatte ich in der tat überlesen. ist ja dann schon dem Block recht nahe, das geht dann notfalls auch. Naja ich finde das komisch, weil es doch ansich auch mit nem Block gehen müsste, aber wenns nich geht muss ich mich damit abfinden und werde die Kugel nemen müssen ![]() |
||
![]() |
Fuchsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und die Streckung in Y-Richtung ist auch die Lösung des Stufenproblems.
Denn je höher der Y-Radius des Players, desto höhere Stufen kann er steigen. So wirds auch im Cubewater sample gemacht! ![]() |
||
Scope |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok so hab ichs jetzt gemacht.
eine frage noch: Kann man Kollisionsabfragen machen, ohne dass das objekt stopt, slided oder nur rauf slided? gibt es einen Befehl, der eine bestimmte Kollision (ein wert aus dem kollisionsindex, also maximal countcollisions()) ignoriert? ist sowas prinzipiell möglich? |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group