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
C-/C++-Quelltext |
|
1 |
mRotationZ = tbMatrixRotationZ(::fmodf (TB_DEG_TO_RAD(20.0f * g_fTime), 2.0f*TB_PI)); // Rotationsmatrix |
Zitat von »"Steven77"«
Es tut sich nix, weil du ja stets die Zeit seit dem letzten Frame verwendest. Diese Zeit ist erstens sehr klein und zweitens in allen Frames relativ identisch bzw. nur minimal abweichend. Insofern wird für jeden Frame annähernd dieselbe Rotation berechnet -- da dreht sich also nix, vielleicht bemerkst du aber ein feines "Zittern"...
Wenn du die Zeiten der einzelnen Frames addierst, erhälst du einen brauchbaren Zeitwert.
C-/C++-Quelltext |
|
1 2 3 |
static float fTotalTime = 0; fTotalTime += g_fTime; mRotationZ = tbMatrixRotationZ(::fmodf (TB_DEG_TO_RAD(20.0f * fTotalTime), 2.0f*TB_PI)); |
Zitat von »"Nox"«
dirty style:
C-/C++-Quelltext
1 2 3 4 5 static float fTotalTime = 0; // Globale Zeit als statische Variable (böse) fTotalTime += g_fTime; // Zeit seit letzem Frame addieren // Rotation mit globaler Zeit berechnen mRotationZ = tbMatrixRotationZ(::fmodf (TB_DEG_TO_RAD(20.0f * fTotalTime), 2.0f*TB_PI));
C-/C++-Quelltext |
|
1 2 3 4 5 |
static float fTotalTime = 0; // Globale Zeit als statische Variable (böse) fTotalTime = ::fmodf (fTotalTime + g_fTime, 2.0f * TB_PI); // wird nie größer als 2pi // Rotation mit globaler Zeit berechnen mRotationZ = tbMatrixRotationZ(TB_DEG_TO_RAD(20.0f * fTotalTime)); |
C-/C++-Quelltext |
|
1 2 3 4 |
tbVector2TransformCoords(g_aTriangleVertex[0].vTexture, mRotationZ); tbVector2TransformCoords(g_aTriangleVertex[1].vTexture, mRotationZ); tbVector2TransformCoords(g_aTriangleVertex[2].vTexture, mRotationZ); tbVector2TransformCoords(g_aTriangleVertex[3].vTexture, mRotationZ); |
Alter Hase
Werbeanzeige