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