Seite 1 von 1

[DONE] Physik will nicht so wie ich wohl will.

Verfasst: 15.04.2021 16:46
von tft
es geht um .....

Code: Alles auswählen

    ApplyEntityImpulse(ObjAnkerPlayer,EntityDirectionX(ObjAnkerPlayer)*0.01,EntityDirectionY(ObjAnkerPlayer)*0.01,EntityDirectionZ(ObjAnkerPlayer)*0.01,0,0,0 )
SetEntityAttribute(ObjAnkerPlayer, #PB_Entity_LinearSleeping   , 0.001) 
    
dieses Stück Code gibt einem Objekt das einen Physischen Body hat. Einen Bewegungsimpuls und anschliessend wird die minimal Geschwindigkeit bei der die Engine das Objekt automatisch stopt runter gesetzt. Funktioniert super. Obwohl ich eigentlich davon ausgehe das dies falsch ist und nur aus zufall funktioniert.

Und mit folgenden Zeilen sollte ich eigentlich feststellen können in welche Richtung der Bewegungsvector zeigt.

Code: Alles auswählen

        movez.f=GetEntityAttribute(ObjAnkerPlayer,#PB_Entity_LinearVelocityZ )
        movex.f=GetEntityAttribute(ObjAnkerPlayer,#PB_Entity_LinearVelocityX )
        movey.f=GetEntityAttribute(ObjAnkerPlayer,#PB_Entity_LinearVelocityY )
aber die Werte die dort rauskommen stimmen nicht so richtig. Ich brauch das um die Bewegung wider zu verlangsamen. Um entsprechende gegen Impulse zu geben um wider anhalten zu können. Eigentlich wollt ich mich garnicht mit Physik befassen. Aber die Berechnung der Kollision eines Strahles mit einer Fläche. Und die sich daraus ergebene Position benötigt Physik. Auch die Kollision Berechnung wollte ich so handhaben. Aber das ist alles irgendwie ... Unlogisch. Zu mindestens für meinen einfach gestrickten Geist. In mir reift die Ansicht. Das ich wie bei der Camera einige Bewegungen auf separate Achsen verlegen muss. Aber dazu brauche ich die aktuellen Bewegungs Vektoren ........

Gruss TFT

Re: Physik will nicht so wie ich wohl will.

Verfasst: 16.04.2021 16:56
von STARGÅTE
Ich kenn mich mit der OGRE Engine nicht aus aber ApplyEntityImpulse() fügt doch einen zusätzlichen Impuls zum Entity.
Die Werte die dann GetEntityAttribute() zurückgibt sind aber absolute Geschwindigkeiten.
Das heißt, zum einen hängt es von der Masse des Objekts ab, wie viel des Impulses wirklich in Geschwindigkeit umgewandelt wird,
und zum anderen, wie die Bewegungsrichtung davor überhaupt war. Die Werte die du rein gibst sind also vermutlich nie die, die du wieder zurück erhältst.