MoveEntity(#PB_Relative) funzt mit Physik nicht mehr ?!
- Chimorin
- Beiträge: 451
- Registriert: 30.01.2013 16:11
- Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit
Re: MoveEntity(#PB_Relative) funzt mit Physik nicht mehr ?!
Das funktioniert nicht, weil du den Physikalischen Körper ABSOLUT setzt.
Da gibt es irgendwie einen Unterschied zwischen relativ und absolut; Wie es auch ist, absolut setzt das Entity an diese Position, egal welche.
Bei relativ fährt das Entity den Weg ab oder die Physikengine kann damit arbeiten, was auch immer, nur bei relativen Bewegungen funktionieren die Physikkörper.
Komme ich zu meinem voreiligen Statement:
Hier handelt es sich um einen neuen Bug. Ich bin mir nicht sicher, weil ja das Beispiel FPSFirstPerson.pb komischerweise funktioniert, aber sonst funktioniert kein Beispiel.
Die Bugbeschreibung lautet: MoveEntity(#PB_Relative) funzt mit Physik nicht mehr ?!.
Kann jemand das Gegenteil beweisen?
Da gibt es irgendwie einen Unterschied zwischen relativ und absolut; Wie es auch ist, absolut setzt das Entity an diese Position, egal welche.
Bei relativ fährt das Entity den Weg ab oder die Physikengine kann damit arbeiten, was auch immer, nur bei relativen Bewegungen funktionieren die Physikkörper.
Komme ich zu meinem voreiligen Statement:
Hier handelt es sich um einen neuen Bug. Ich bin mir nicht sicher, weil ja das Beispiel FPSFirstPerson.pb komischerweise funktioniert, aber sonst funktioniert kein Beispiel.
Die Bugbeschreibung lautet: MoveEntity(#PB_Relative) funzt mit Physik nicht mehr ?!.
Kann jemand das Gegenteil beweisen?
- Chimorin
- Beiträge: 451
- Registriert: 30.01.2013 16:11
- Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit
Re: MoveEntity(#PB_Relative) funzt mit Physik nicht mehr ?!
So, ich habe mal einen entsprechenden Thread im englischen Forum erstellt. Comtois hat wenig später geantwortet und hier kommt die Lösung:
1. Entferne #PB_Relative bei MoveEntity().
Das war es schon. Nun funktioniert es einwandfrei. Meiner Meinung nach liegt da wohl ein Fehler bei MoveEntity().
1. Entferne #PB_Relative bei MoveEntity().
Das war es schon. Nun funktioniert es einwandfrei. Meiner Meinung nach liegt da wohl ein Fehler bei MoveEntity().
- Makke
- Beiträge: 156
- Registriert: 24.08.2011 18:00
- Computerausstattung: AMD Ryzen 7 5700X - AMD Radeon RX 6800 XT - 32 GB DDR4 SDRAM
- Wohnort: Ruhrpott
- Kontaktdaten:
Re: MoveEntity(#PB_Relative) funzt mit Physik nicht mehr ?!
Aha, vielen Dank. Ich war schon echt am verzweifeln. Aber der physische Körper ist immer noch "verschoben". Da kann man nur mit dem Workaround eines zweiten unsichtbaren Entities arbeiten oder gibt es noch eine andere Lösung ?
---
Windows 11 (64 bit)
Windows 11 (64 bit)
- Chimorin
- Beiträge: 451
- Registriert: 30.01.2013 16:11
- Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit
Re: MoveEntity(#PB_Relative) funzt mit Physik nicht mehr ?!
Da habe ich leider auch keine Ahnung.
Was mich auch stört ist, dass mein Physikbody immer inaktiv ist oder dem Entity eine Rotation verpasst.
Was mich auch stört ist, dass mein Physikbody immer inaktiv ist oder dem Entity eine Rotation verpasst.
- Makke
- Beiträge: 156
- Registriert: 24.08.2011 18:00
- Computerausstattung: AMD Ryzen 7 5700X - AMD Radeon RX 6800 XT - 32 GB DDR4 SDRAM
- Wohnort: Ruhrpott
- Kontaktdaten:
Re: MoveEntity(#PB_Relative) funzt mit Physik nicht mehr ?!
Wenn Du das Mesh an den Koordinaten 0, 0, 0 zentrierst, dann ist der physische Körper korrekt über das Entity gelegt. Ich hatte bisher immer den Körper mit den Füßen auf der Y-Achse auf den Null-Punkt gelegt, dann war der physische Körper verschoben.
---
Windows 11 (64 bit)
Windows 11 (64 bit)
Re: MoveEntity(#PB_Relative) funzt mit Physik nicht mehr ?!
Ein Verschieben von Physikbodies habe ich nicht gesehen ..
Egal wo ich es definiere (sphere,box .. ) der PhysikKörper passt
(warum muss ich jetzt an HaarsprayWerbung denken ??)
Bei externen Meshes wie dem Ninja könnte das anders sein. Sollte
doch aber wohl eigentlich nicht.
Benutz mal statt
lieber
irgendwo bei Zeile 206
diese Kapsel ist eine Kapsel und sicher nicht identisch mit der Form des Ninja
dann klappt es auch besser mit der Kollisionserkennung
Egal wo ich es definiere (sphere,box .. ) der PhysikKörper passt
(warum muss ich jetzt an HaarsprayWerbung denken ??)
Bei externen Meshes wie dem Ninja könnte das anders sein. Sollte
doch aber wohl eigentlich nicht.
Benutz mal statt
Code: Alles auswählen
EntityPhysicBody(\entity, #PB_Entity_CapsuleBody, 0.8, 0, 0)
Code: Alles auswählen
EntityPhysicBody(\entity, #PB_Entity_ConvexHullBody, 0.8, 0, 0)
irgendwo bei Zeile 206
diese Kapsel ist eine Kapsel und sicher nicht identisch mit der Form des Ninja
dann klappt es auch besser mit der Kollisionserkennung
pb aktuell5.7 - windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
- Makke
- Beiträge: 156
- Registriert: 24.08.2011 18:00
- Computerausstattung: AMD Ryzen 7 5700X - AMD Radeon RX 6800 XT - 32 GB DDR4 SDRAM
- Wohnort: Ruhrpott
- Kontaktdaten:
Re: MoveEntity(#PB_Relative) funzt mit Physik nicht mehr ?!
Ja. Es ist nur bei externen Modellen so (siehe Robot und Ninja). Die Purebasic Meshes (Sphere, Cube usw.) sind an den Koordinaten 0,0,0 (mit deren Mittelpunkt) automatisch ausgerichtet.
---
Windows 11 (64 bit)
Windows 11 (64 bit)
Re: MoveEntity(#PB_Relative) funzt mit Physik nicht mehr ?!
Ich hätte hierzu auch nochhmal eine Frage.
Wenn ich bei MoveEntity() "#PB_Relative" weglasse fuktioniert zwar die Physik wieder, aber mit der Gravitation stimmt irgendwas nicht. Die Objekte fallen viel zu langsam nach unten. Hat da jemand vielleicht eine Lösung für das Problem?
Wenn ich ApplyEntityForce() und ApplyEntityImpulse() verwende ist die Fallgeschwindigkeit zwar in Ordnung, aber hier kann ich nicht den Modus "#PB_Local" verwenden um den Player in Blickrichtung laufen zu lassen.
Wenn ich bei MoveEntity() "#PB_Relative" weglasse fuktioniert zwar die Physik wieder, aber mit der Gravitation stimmt irgendwas nicht. Die Objekte fallen viel zu langsam nach unten. Hat da jemand vielleicht eine Lösung für das Problem?
Wenn ich ApplyEntityForce() und ApplyEntityImpulse() verwende ist die Fallgeschwindigkeit zwar in Ordnung, aber hier kann ich nicht den Modus "#PB_Local" verwenden um den Player in Blickrichtung laufen zu lassen.
Re: MoveEntity(#PB_Relative) funzt mit Physik nicht mehr ?!
MoveEntity im zusammenhang mit einem physikalischen Objekt zu verwenden ist keine gute Idee, da bei einer Bewegung keinerleit Informationen über die Geschwindigkeit/Impuls/Kraft zur Verfügung stehen.
Um eine Art local Bewegung zu erzeugen, kannst du dir die Blickrichtung deines Körpers zurückgeben lassen.
Hier reicht vermutlich: EntityYaw()
Damit bekommst du deine Blickrichtung in der X-Z-Ebene.
Die Verwendest du dann mit Cos() und Sin() für deinen Bewegungsimpuls:
ApplyEntityImpulse(#Entity, Cos(EntityYaw(#Entity))*Scale, 0, Sin(EntityYaw(#Entity))*Scale)
Scale ist dann eine Art Bescheunigungswert
Um eine Art local Bewegung zu erzeugen, kannst du dir die Blickrichtung deines Körpers zurückgeben lassen.
Hier reicht vermutlich: EntityYaw()
Damit bekommst du deine Blickrichtung in der X-Z-Ebene.
Die Verwendest du dann mit Cos() und Sin() für deinen Bewegungsimpuls:
ApplyEntityImpulse(#Entity, Cos(EntityYaw(#Entity))*Scale, 0, Sin(EntityYaw(#Entity))*Scale)
Scale ist dann eine Art Bescheunigungswert
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
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: MoveEntity(#PB_Relative) funzt mit Physik nicht mehr ?!
Vielen Dank, werde das gleich mal ausprobieren...