ODE: Objekt je nach Kameraausrichtung bewegen?
Übersicht

MauBetreff: ODE: Objekt je nach Kameraausrichtung bewegen? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Habe gerade ein kleines Problem mit ODE und einem Objekt, das man mittels Cursor-Tasten in vier Richtungen bewegen kann (links, rechts, vor, zurück).
Ich habe das bisher so gelöst: Code: [AUSKLAPPEN] If KeyDown(205) dBodyAddForce PlayerObj\Body, force,0,0
If KeyDown(203) dBodyAddForce PlayerObj\Body,-force,0,0 If KeyDown(208) dBodyAddForce PlayerObj\Body,0,0,-force If KeyDown(200) dBodyAddForce PlayerObj\Body,0,0, force Klappt auch, allerdings sind damit die Richtungen fest vorgegeben (absolut). Wenn die Kamera sich z.B. dreht, hat der Spieler das Gefühl, das die Richtungen vertauscht wären. Deshalb würde ich das am liebsten machen, wie bei den Konsolenspielen -dort ist z.B. "links" immer dort, wo aus Sicht der Kamera links ist usw. Aber wie könnte man das mit ODE umsetzen? Laut User Manual gibts da die Befehle dBodyAddForceAtRelPos dBodyAddRelForceAtPos dBodyAddRelForceAtRelPos -aber ich habe keinen Plan, wie die benutzt werden sollten ![]() |
||
Alles muss, nichts kann! |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du musst den Kraftvektor berechnen ausgehend von der aktuellen Blickrichtung in welche "vorne" ist.
Dazu kannst du einen Vektor von 0,0,Force mittels TFormVektor einfach von der aktuellen Entity nach 0 transformieren und erhälst den Vektor den die Kraft in "weltkoordinaten" hat welche du für ODE brauchst. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Mau |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Etwa so?
Code: [AUSKLAPPEN] ; CURSOR-TASTE LINKS
TFormVector -force, 0, 0, Camera, 0 Und mit welchem ODE-Befehl wende ich dann die TFormed-Werte am zu bewegenden ODE-Objekt an? In der User Reference sind vier oder fünf "relForce(At)"-Befehle aufgeführt, aber ohne ein Beispiel. Ist wirklich schwer, da einen Durchblick zu erhalten ![]() |
||
Alles muss, nichts kann! |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] xmove#=sin(ywink#)*cos(xwink#)*move#
ymove#=sin(xwink#)*move# zmove#=cos(ywink#)*cos(xwink#)*move# ich hoffe, das reicht |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mau hat Folgendes geschrieben: Etwa so?
Code: [AUSKLAPPEN] ; CURSOR-TASTE LINKS
TFormVector -force, 0, 0, Camera, 0 Und mit welchem ODE-Befehl wende ich dann die TFormed-Werte am zu bewegenden ODE-Objekt an? In der User Reference sind vier oder fünf "relForce(At)"-Befehle aufgeführt, aber ohne ein Beispiel. Ist wirklich schwer, da einen Durchblick zu erhalten ![]() du kannst obigen befehl nehmen, mit tforcedx() tforcedy() tforcedz() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Mau |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
tforcedx()? ODE kennt diese Befehle nicht, wahrscheinlich meintest du TFormedX() etc.
Das ist schon klar -aber ich fragte ja, wie ich dann anschliessend die TFormed-Werte an ODE übergeben kann (mit welchem ODE-Befehl kann man diese TFormed-Werte dann auf den Body des zu bewegenden Objekts übetragen)? |
||
Alles muss, nichts kann! |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mit dBodyAddForce
Da der ja, so wie es aussieht, Kräfte in Weltkoordinaten erfordert, was du durch das TFormVektor mit dem lokalen Kraftvektor nach 0 erreicht hast ![]() Und ja, sorry, meinte natürlich TFormed ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Mau |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Super ![]() |
||
Alles muss, nichts kann! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group