Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
01.05.2002, 13:34
RirA



Wie ihr ja sicher wißt, sind die Physics wenn man auf einem Train in HL springt falsch. Wenn man springt bzw. sich in der Luft befindet fährt der Zug einfach unter einem weg, anstatt dass man sich in der Luft weiter mitbewegt.
Ich will das nun richtig"hacken", deshalb habe ich schon versucht die Velocity und den Speed des Trains dem Spieler anzupassen, aber nichts hilf.
Hat jemand eine Idee?

Danke!

--

zum Seitenanfang zum Seitenende Profil || Suche
001
01.05.2002, 17:04
Rockefeller



Quellcode:
    // If you're standing on a conveyor, add it's velocity to yours (for momentum)
    entvars_t *pevGround = VARS(pev->groundentity);
    if ( pevGround && (pevGround->flags & FL_CONVEYOR) )
    {
        pev->velocity = pev->velocity + pev->basevelocity;
    }

Das steht so in CBasePlayer::Jump(), ka warum das nicht funzt. Eigentlich sollte die Velocity auch nach dem ersten Frame erhalten bleiben, denn ein Player verliert die ja nicht innerhalb eines Frames.

--

zum Seitenanfang zum Seitenende Profil || Suche
002
01.05.2002, 17:12
Another1



versucht mal, 's inner pm_xxx.c zu machen, da CBasePlayer::Jump irgendwie eh nur noch nen übriggebliebener rest alter tage is.

Vielleich klappt aber auch das hier:
Quellcode:
    // If you're standing on a conveyor, add it's velocity to yours (for momentum)
    entvars_t *pevGround = VARS(pev->groundentity);
    if ( pevGround && (pevGround->flags & FL_CONVEYOR) )
    {
        pev->velocity = pev->velocity + pev->basevelocity;
        pev->flags &= ~(FL_ONGROUND); // man spring ja schließlich    
    }
=)

--

Another1

...relaxing..atm =)
... und Schweiz suckt!


Dieser Beitrag wurde am 01.05.2002 um 17:12 von Another1 bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
003
01.05.2002, 17:17
Rockefeller



pev->flags wird doch (zumindest teilweise) automatisch vonner Engine ausgefüllt, oder seh ich das falsch?

--


Dieser Beitrag wurde am 01.05.2002 um 17:17 von Rockefeller bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
004
01.05.2002, 21:30
RirA



Also ich hab es jetzt so:

Quellcode:
    if(pev->groundentity &&
        FClassnameIs( pev->groundentity, "func_tracktrain" ))
    {
        pev->velocity = pev->velocity + pevGround->velocity;
    }

Ist aber leider ziemlich buggy in Kurven und auch so.

--

zum Seitenanfang zum Seitenende Profil || Suche
005
01.05.2002, 23:43
TheTinySteini



Das Löschen von FL_ONGROUND wie's Another1 beschrieben hat würd ich an deiner Stelle ruhig mal ausprobieren. Ich hab das auch irgendwo anders im Code mal gesehen, da stand glaub ich auch als Kommentar, dass es sonst zu Problemen kommen kann. Du kannst ja schließlich nicht davon ausgehen, dass der Code, der danach ausgeführt wird, erstmal die neue velocity checkt, sondern sich einfach auf FL_ONGROUND verlässt. Und das is scheiße, wenn man sich in der Luft so bewegt wie auffem Boden. Wär bisschen Comic-like.

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche
006
02.05.2002, 12:46
RirA



Ich habe das schon ausprobiert, es bringt rein garnichts.

--

zum Seitenanfang zum Seitenende Profil || Suche
007
02.05.2002, 15:59
TheTinySteini



Gut, dann schreib mal was in den Kurven so buggy is. Vielleicht kann man ja bisschen Mathekenntnisse anbringen >:o

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche
008
02.05.2002, 16:40
RirA



Ich gleiche die Velocity IMMER an den Zug an, aber trotzdem kann man runterfallen, bzw. wird nicht immer mitgenommen, da ist denk ich mal einfach was auf Seiten der Physicengine falsch gelaufen. Ein Blick in die Engine würde sicher helfen, aber das geht ja nicht :).

--

zum Seitenanfang zum Seitenende Profil || Suche
009
02.05.2002, 17:50
Rockefeller



hmm ich raffs nicht ganz.
1. Wenn man auf dem Zug steht, kann man doch eh nicht runterfallen.
2. Wenn man von einem Zug springt, der grade eine relative schnelle und starke Kurve fährt, fällt man logischerweise runter.

--

zum Seitenanfang zum Seitenende Profil || Suche
010
02.05.2002, 21:23
RirA



Kennst du das nicht aus HL? Das ist einfach nicht so in der Realität.

--

zum Seitenanfang zum Seitenende Profil || Suche
011
03.05.2002, 00:18
Rockefeller



Wie? Was ist nicht so in der Realität? Als spring mal von einem um eine Kurve fahrenden Zug (oder Auto, oder Bollerwagen :D)...

Erklär nochmal genau, was du meinst.

--

zum Seitenanfang zum Seitenende Profil || Suche
012
03.05.2002, 01:01
Retro



Ich glaub er meint die Fliehkräfte in den Kurven?! o_O

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
013
03.05.2002, 15:09
[RMen]OneStone



Nein, ich glaub er meint:
Wenn ein Zug in der realität geradeaus fährt, und man dann springt, springt man schneller vorwährts => man landet an der Stelle auf dem Zug, an der man lossprang.
In Half-Life Springt man einfach hoch, und der Zug fährt unter einem weiter.

--

georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/

zum Seitenanfang zum Seitenende Profil || Suche
014
03.05.2002, 15:33
Rockefeller



Ich glaub ich verstehe :D

Was ich mich aber immer schon mal gefragt haben: Was zur Hölle bringt pev->basevelocity?

--

zum Seitenanfang zum Seitenende Profil || Suche
015
03.05.2002, 15:38
[RMen]OneStone



Betreffend "Was zur Hölle bringt pev->basevelocity?":
Soweit ich weiss kann die BaseVelocity von überall verändert werden, sie bleibt jedoch konstant, d.h. sie wird von der pm_***.* nicht verändert, was mit der normalen ja unter Umständen geschiet.

--

georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/

zum Seitenanfang zum Seitenende Profil || Suche
016
03.05.2002, 16:29
RirA



OneStone hat Recht :-).

--

zum Seitenanfang zum Seitenende Profil || Suche
017
03.05.2002, 16:30
Rockefeller



Das wäre somit ein guter Kandidat fürs Springen von Zügen...

--

zum Seitenanfang zum Seitenende Profil || Suche
018
03.05.2002, 23:10
RirA



häh?

--

zum Seitenanfang zum Seitenende Profil || Suche
019
03.05.2002, 23:16
TheTinySteini



Btw: du solltest den Luftwiderstand nicht vergessen... du würdest also auf jeden Fall etwas zurückgeworfen werden. Außer der Zug hat ne Kabine.

Man kann's auch kompliziert machen, ich weiß... =)

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche
020
03.05.2002, 23:19
RirA



Ich vergesse den Luftwiderstand nicht, trotzdem ist es bei HL nicht realistisch.

--

zum Seitenanfang zum Seitenende Profil || Suche
021
05.05.2002, 11:49
static_caster



na, was viel wichtigeres:
wenn sich der zug nahe lichtgeschwindigkeit bewegt würde ich das ganze schon noch relativistisch betrachten:

der zug hat als bewegtes system gegenüber einem ruhenden die relativgeschwindkeit v. wenn man nun springt, hat man gegenüber dem zug die geschwindigkeit u', die man dann für das ruhende system mit u = (u'+v)/(1+u'*v/c²) erhält.

wichtig ist dies vor allem für die sprungweite, falls man eben doch vom zug (z.B. vorn) runterspringt, da sich schon der ankunftsort des zuges mit x = (x' + v*t')/sqrt(1 - v²/c²) ändert, wobei diese änderung immer nur in richtung der bewegung des zuges gilt, wobei der einfachheit halber angenommen wird, daß sich der zug nur in 1ne richtung bewegt.
(hier noch das ganze für einen bewegten körper in einem bewegten system gegenüber einem ruhenden zu machen, spar ich mir -> herleitung schaff ich nicht in 5 minuten!)

noch zu beachten sind zeitdiletation und massenänderung, wobei sich die massenänderung ja auf die sprunghöhe und -geschwindigkeit, wenn wir davon ausgehen, daß es ein schräger (wurf) nach oben ist, auswirken dürfte.
somit ändert sich das gesamte sprungverhalten, also geschwindigkeit, auftreffort, usw.

wobei wichtig ist, daß strenggenommen *während* des sprungs für den spieler kein Inertialsystem mehr herrscht (wegen fallbeschleunigung) und somit eigentlich alles egal wird. aber es ist richtig, eine relativistische addition der geschwindigkeiten durchzuführen, um überhaupt auf die ausgangsgeschwindigkeit des sprunges zu kommen.

für ne kurve wird das ganze auch anders, denn da herrscht für den zug auch kein inertialsystem mehr.

richtig lustig wird aber die energiediskussion des ganzen!

und der luftwiderstand ist nicht das problem. funzt über das gesetz von stokes

--

zum Seitenanfang zum Seitenende Profil || Suche
022
05.05.2002, 12:00
[RMen]OneStone



Ich habe mal volgenden Denkansatz gemacht:
Vermutlich wird beim berühren eines Zuges die velocity des zuges zur basevelocity addiert. Beim entrühren (gegenteil von berühren =]) wird der Wert wieder abgezogen. Das führt zu unserem Problem. Die Lösung wär' den Wert der beim entrühren von der basevelocity wieder abgezogen wird zur velocity zu addieren.

MfG, Georg

--

georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/

zum Seitenanfang zum Seitenende Profil || Suche
023
05.05.2002, 12:23
RirA



Danke OneStone. Und static wenn du dein Genie beweisen willst, geh bitte an ne Uni einen Vortrag halten, weil hier bringt das wohl wenig.

--


Dieser Beitrag wurde am 05.05.2002 um 12:24 von RirA bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
024
05.05.2002, 19:22
KayP



wenn ich mal so fragen darf wo finde ich generell die physiks? (rennen laufen springen und die tasten namen +xxx) ich hab nirgendswo was gefunden *verzweifel*

--

zum Seitenanfang zum Seitenende Profil || Suche