Hallo zusammen!
Ich habe mir vor einiger Zeit das Buch zu Gemüte geführt und habe seitdem ich es durch hab diverse Erweiterungen am Spiel gemacht: Punkte, Lebensliste, Menü,...
Im Moment versuche ich mich am Speichern der Punkte in einer Highscoreliste. Das funktioniert so weit - allerdings möchte der geneigte Spieler natürlich auch seinen Namen eingeben.
Genau an dieser Stelle habe ich mir zwar eine Lösung überlegt, die aber leider (noch) nicht funktioniert. Das ist aber NICHT das Problem, in dem es in diesem Thread geht.
Das bereits vorgestellte Problem ist wahrscheinlich mit dem Debugger zu lösen - aber eben jener macht ein mir schier unlösbares Problem:
Wenn ich das Spiel als Debug- Build compiliere und ausführe (also die .exe starte), funktioniert alles einwandfrei.
Wenn ich aber den Debugger starte, verhält sich folgende Stelle anders:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
|
CText::CText (const char* cFontname, int size)
{
m_pScreen = g_pFramework->GetScreen ();
TTF_Init ();
m_pFont = TTF_OpenFont(cFontname, size); //liefert NULL
if(!m_pFont)
printf("TTF_OpenFont: %s\n", TTF_GetError());
}
|
Der Font ist an der richtigen Stelle und wird auch einwandfrei geladen, wenn ich nicht den Debugger benutze - aber im Debug- Modus liefert der Konstruktor an der entsprechend markierten Stelle nichts zurück.
TTF_GetError() liefert leider nur ein recht nichtssagendes "Font <cFontname> konnte nicht geladen werden".
Wenn ich den Font dann später verwenden möchte, knallt das Programm natürlich in einen Fehler...
Ich hab leider nicht die geringste Ahnung, warum der Debugger sich anders verhält, aber vielleicht ist euch das Problem ja mal über den Weg gelaufen...
Bin jedenfalls für jede Hilfe dankbar!
Brummbaer Ende
Edit: ganz vergessen: ich benutze die Visual C++ Express Edition unter Windows XP.
Ich habe jetzt übrigens einen einfache IF- Anweisung um die Render- Funktion des Textes gepackt, damit der nicht auf den Fehler aufläuft; Text gibt er jetzt natürlich keinen mehr aus (zumindest im Debugging)...