Also, einmal vornweg, da das SDL Spiel was bei dem Buch "C++ für Spieleprogrammierer" bei mir irgendwie net funktioniert (arbeite mit CodeBlocks mit MinGW Compiler) hab ich mir gedacht ich schreib halt alles neu und dann läufts vielleicht, dem ist aber leider nicht so.
Also ich hab mal ne einfach abgklatsche von dem Framework und Sprite geschrieben, doch irgendwie bleibt das programm beim Aufruf der Sprite-Memberfunktion
|
C-/C++-Quelltext
|
1
|
void cSprite::Render();
|
irgendwie hängen. es regiert nichtmehr usw.
Hier mal die Render Funktion:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
|
void cSprite::Render()
{
cout << "Test" << endl; //Ausgabe Test, um zu checken wo es hängenbleibt
//Image / Sprite rendern
if(SDL_BlitSurface(m_pImage, NULL, m_pScreen, &m_Rect) != 0)
cout << "cSprite: Image erfolgreich gerendert!" << endl;
else
{
cout << "Beim rendern eines Images ist ein Fehler aufgetreten! "
"Fehler Code: " << SDL_GetError() << endl;
}
}//Render
|
so, das lustige ist das es nichtmal mehr "Test" ausgibt, das heist es muss irgendwo vor / beim aufruf h#ngen bleiben. Hier mal ein ausschnit aus der Main.cpp:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
...
cout << "Sprite wird initialisiert..." << endl;
SpriteBackground->Init(Framework);
cout << "Framework wird initialisiert..." << endl;
Framework->init(300, 300, 32, false);
cout << "Background wird geladen..." << endl;
SpriteBackground->Load("../Data/Background.bmp");
cout << "Position wird gesetzt..." << endl;
SpriteBackground->SetPos(0.0f, 0.0f);
cout << "Bildschirm wird geleert..." << endl;
Framework->Clear();
cout << "Sprite wird gerendert..." << endl;
SpriteBackground->Render();
cout << "Surface wird geflippt..." << endl;
Framework->Flip();
...
|
Als letztes gibt das PRogramm noch "Sprite wird gerendert..." aus, dann hängts ca 2 sek und stürtzt ab.
Wenn ich es Debuggen will dann kommen plötzlich extrem viele Variablen adressen, und am schluss gibt der debugger dann nur noch : 00000000x0
aus. was heist das?
noch zum abschluss, das was in der stdout.txt steht:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
Sprite wird initialisiert...
Klasse cSprite: Framework erfolgreich zugewiesen!
Klasse cSprite: Screen erfolgreich zugewiesen!
Framework wird initialisiert...
SDL erfolgreich initialisiert!
Videomodus erfolgreich gesetzt!
Framework erfolgreich initialisiert!
Background wird geladen...
Die BMP-Datei: ../Data/Background.bmp wurde erfolgreich geladen
Klasse cSprite, Funktion Load: Geladenes Image erfolgreich optimiert!
Position wird gesetzt...
Position gesetzt!
Bildschirm wird geleert...
Screen geleert!
Sprite wird gerendert...
|
ich hoffe ihr könnt mir helfen, bin am verzweifeln
lg chili