Gravitation und Kollision

Übersicht BlitzBasic Blitz3D

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

 

Scope

BeitragSo, Feb 12, 2006 17:16
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Feb 12, 2006 17:22
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Feb 12, 2006 17:28
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Smile
 

HW

BeitragSo, Feb 12, 2006 17:34
Antworten mit Zitat
Benutzer-Profile anzeigen
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. Wink Aber ich denke nicht, dass du schon mit Multiplayer anfangen willst.
 

Scope

BeitragSo, Feb 12, 2006 17:46
Antworten mit Zitat
Benutzer-Profile anzeigen
äh nee wollt ich auch nich und mit wand meinte ich schon wand. ok ich probiers nochmal Wink
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. Wink
wie würdest du das problem mit dem Kriechen/tunnel denn angehen?

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSo, Feb 12, 2006 18:17
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Feb 12, 2006 18:19
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Feb 12, 2006 18:22
Antworten mit Zitat
Benutzer-Profile anzeigen
schreibfehler Wink natürlich der spieler.
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 Wink danke, ich probiers mal.

Fuchsi

BeitragMo, Feb 13, 2006 22:20
Antworten mit Zitat
Benutzer-Profile anzeigen
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! Very Happy
 

Scope

BeitragDi, Feb 14, 2006 21:12
Antworten mit Zitat
Benutzer-Profile anzeigen
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?

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group