Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

41

01.03.2007, 21:30

Aber ändert sich so auch das Problem mit dem Langsamer werden?

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

42

01.03.2007, 21:57

Das mit dem langsamer werden hat einen ganz einfachen Grund.
Deine aktuellen Bedingungen/Formeln(vereinfacht):

vCamRot.Z = 1.0f
bzw
vCamRot.Z = -1.0f

CamTarget = CamTarget + vCamRot * fTime

Betrachten wir den 1. Fall(also z = 1). Wenn wir die Taste ganz lange drücken läuft das auf Z -> unendlich hinaus. Da wir vCamRot nur einfach zu dem Ziel addieren bedeutet das nur, dass bei unserem CamTarget Z -> unendlich läuft. Für z = -1 gilt das ganze ebenfalls, nur mit anderem Vorzeichen. Du hast also keine Rotation sondern nur eine Translation.

was du brauchst ist irgendwas in dieser Form:

CamTarget = CamPos + Vektor(sin(CamRot.Z), cos(CamRot.Z), 0)

Du nimmst also die CamPos als Ausgangsort und addierst zu dem nur ein Richtungsvektor. Dieser muss einerseits die X als auch die Y Komponente verändern um eine Rotation um die Z Achse zu erreichen. Ob das nun so wirklich korrekt ist, weiß ich nicht, aber von der Theorie her sollte es stimmen.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.