Smoothes Drehen zu Winkel

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

N0X

Betreff: Smoothes Drehen zu Winkel

BeitragMo, Jan 20, 2014 23:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute,
und schon wieder melde ich mich! Smile

Ich bin im Moment dabei eine Spieler-Steuerung zu programmieren.
Der Spieler wird per MoveEntity bewegt und ein Pivot wird ständig auf die Position des Spielers gesetzt.
Die Kamera ist ein Child des Pivots. Wenn nun der Pivot (und die Kamera logischerweise mit) gedreht wird, soll der Spieler bei einer erneuten Bewegung den Winkel des Pivots übernehmen, aber nicht schlagartig sondern 'smooth'. Ich denke ihr wisst was ich meine.
Beim Recherchieren in anderen Threads ähnlicher Natur bin ich viel auf Cos/Sin/ATan2 gestoßen.
Ich frage mich nun wie ich das umsetzen kann.

Könnt ihr mir helfen?

MfG,
N0X
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

Xeres

Moderator

BeitragDi, Jan 21, 2014 0:19
Antworten mit Zitat
Benutzer-Profile anzeigen
1. Bestimme den Winkel zwischen den beiden Objekten vll. mit EntityYaw oder DeltaYaw
2. Drehe das Objekt in der kürzeren Richtung mit einer Drehgeschwindigkeit.
3. Bei genügend kleinem Abstand anhalten, fertig.

Die Aufgabe lässt sich beliebig kompliziert stellen, je nach dem was du für Werte benutzt. Ich würde z.B. immer in absoluten Werten Rechnen, anstatt MoveEntity zu benutzen. Zur Not muss man dann alles umformen oder anderweitig errechnen.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

N0X

BeitragDi, Jan 21, 2014 0:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay so in etwa habe ich mir das auch gedacht, werde ich morgen mal ausprobieren.

Kannst du begründen warum du immer in absoluten Werten rechnen würdest und nicht mit MoveEntity arbeiten würdest?
Habe mich schon immer gefragt in wie weit es Nachteile hat mit bspw. MoveEntity zu arbeiten!

Gruß,
N0X
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

Xeres

Moderator

BeitragDi, Jan 21, 2014 20:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich sehe keinen Vorteil in relativer Bewegung.
- Absolute Positionierung ist Exakt. Man setzt die Position als Variablen und kann sich sicher sein, dass das Objekt auch da ist. Keine Ansammlung von Gleitkommafehlern.
- Berechnungen laufen genau so ab wie in 2D, nur mit einer Koordinate mehr. Ich berechne lieber die Koordinatenanteile und kann ein Objekt auf einer richtigen bahn lenken und unabhängig drehen, anstatt irgendeinen Zauber mit MoveEntity zu machen.
- Es gibt keine Nachteile mit der Kollision; PositionEntity verschiebt das Objekt auch nur von einer Position auf die andere.
- Man kann immer relative Werte aus Absoluten berechnen. Anders herum stelle ich mir das schon schwieriger vor. Aber BB hat ja auch alle Werte vorrätig - drum ist es eher eine Geschmackssache, nehme ich an.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

Tritium

BeitragMi, Jan 22, 2014 1:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Evtl. könnte hier (wie so oft) auch ein PID-Regler für Dich passend sein, wenn Du Lust hast, Dich ein bisschen in Regelungstechnik einzulesen. Ist recht flott implementiert und lässt sich sehr bequem justieren, wenn man weiß, welchen Einfluss die drei Parameter (P,I,D) jeweils haben Very Happy

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group