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

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
tft
Beiträge: 605
Registriert: 08.09.2004 20:18
Computerausstattung: GTX Titan , i9 9900K , 32 GB Ram , 500 GB SSD , 3 ASUS FullHD Monitore and more
Wohnort: Dachsen
Kontaktdaten:

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

Beitrag 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
Zuletzt geändert von tft am 21.08.2022 13:17, insgesamt 1-mal geändert.
TFT seid 1989 , Turgut Frank Temucin , Dachsen/Berlin/Antalya
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak :-)
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6996
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Physik will nicht so wie ich wohl will.

Beitrag 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.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Antworten