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

11

09.04.2010, 14:27

C-/C++-Quelltext

1
2
3
4
void Move(float fTime) 
{ 
g_fTime += fTime; 
}


hier steckt der fehler ^^
Was ist den da falsch? :(

12

09.04.2010, 14:33

andersrum
Metal ist keine Musik sondern eine Religion.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

13

09.04.2010, 14:52

movefunktion:

C-/C++-Quelltext

1
m_winkel = (m_winkel> 360)? fTime*90 : m_winkel+fTime*90; //winkel in grad


das setzt du dann hier ein:

C-/C++-Quelltext

1
mRotation = Math::RotationZ(Math::Winkel(m_winkel)); // Funktion Winkel berechnet die übergegebnen Werte in Grad um 


bei deinem zweiten post in zeile 7.
ich weiß nicht wie deine winkelklasse aussieht. vllt reichts wenn du nur mRotation verwendest.

zeig mal nochmal deine frametimeberechnung ohne diesen tippfehler.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

14

09.04.2010, 15:24

Die Funktion die den Bogenmaß in Winkel umrechnet sieht so aus

C-/C++-Quelltext

1
2
3
4
5
6
7
inline float Winkel(const float f)
 {
  const float winkel = 57.29577951f;
  float x;
  x = f * winkel;
  return x;
 }


Die neue Nachrichtenschleife sieht ohne den Tippfehler so aus

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
DWORD dwTime1, dwTime2;
 float fTime = 0.0f;
 while(TRUE)
 {
  dwTime1 = timeGetTime();
  while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
  {
   TranslateMessage(&msg);
   DispatchMessage(&msg);
  }
  if(msg.message == WM_QUIT)
   break;
  else
  {
   Render();
   Move(fTime);
   dwTime2 = timeGetTime();
   fTime = (float)(dwTime2 - dwTime1) / 1000.0f;
  }
 }

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

15

09.04.2010, 15:28

ah jetzt seh ichs. am anfang der schleife wird dwTime1 die zeit zugewiesen. mach das doch lieber kurz vorm anfang der schleife und dann nachdem du die frametime berechnet hast, sonst sieht man nicht dass du dwTime1 aktualisierst.

C-/C++-Quelltext

1
2
3
4
inline float Winkel(const float f)
 {
  return f * 57.29577951f;
 }

reicht.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Werbeanzeige