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

Anonymous

unregistriert

1

30.08.2004, 14:48

Problem mit tbDoMessageloop

Hallo Leute, ich hab hier ein kleines Problem:

Ich wollte ein kleines Spiel mit der tbEngine schreiben.
Eingeteilt ist das ganza in diverse Klassen. In der Main-Klasse gibt es nun die Run-Funktion, die tbDoMessageLoop enthält:

C-/C++-Quelltext

1
2
3
4
5
    if(tbDoMessageLoop(::Move, ::Render))
    {
        // Fehler!

        TB_ERROR("Fehler in der Nachrichtenschleife!", TB_ERROR);
    }


Move und Render sind globale Funktionen, die die Move- und Renderfunktion der Main-Klasse aufrufen...

C-/C++-Quelltext

1
2
tbResult Move(float fTime) {return g_pMain->Move(fTime);}
tbResult Render(float fTime) {return g_pMain->Render(fTime);}


nur ist das Problem nun, dass diese beiden Funktionen nie aufgerufen werden... woran kann das liegen? namespaces?

2

30.08.2004, 18:14

Na irgendwas muss er ja aufrufen. Wenn er nicht deine Funktionen aufruft. Was ruft er dann auf?

Oder gibt es einen Laufzeitfehler (Programmabsturtz), oder liefert die Funktion tbDoMessageLoop einen Fehler?
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Anonymous

unregistriert

3

30.08.2004, 19:14

das programm läuft ohne probleme... das logbuch zeigt auch nichts ungewöhnliches...
aber wenn ich zum beispiel in der move-funktion TB_ERROR zurückgebe, dann macht er das einfach nicht...

4

30.08.2004, 19:28

Das stand aber nicht in deiner Fehlerbeschreibung.

Es ist ganz einfach. tbDoMessageLoop wird beendet wenn eine der beiden Methoden TB_STOP liefern. Die Funktion selbst allerdings liefert immer TB_OK. Das kann man aber alles im Code selber nachschauen.

Und wenn du dir nicht ganz sicher bist. Warum wirfst du dann nicht einfach mal den Debugger an?
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Anonymous

unregistriert

5

30.08.2004, 20:05

Okay danke für die Hilfe!
Werd das nächste mal vorher besser testen müssen...

Werbeanzeige