SDL Screen funktioniert nicht

K

Knobbers

Hallo,
ich bin C++ Anfänger und ich versuche gerade mit SDL ein kleines Spiel zu programmieren.
Bisher habe ich einen Fenster, in dem sich ein blaues Rechteck jede Sekunden ein Stück nach rechts verschieben soll, und das solange, wie ich in meiner for-Schleife angebe.

Zum Problem: Das Fenster bleibt zwar so lange geöffnet, wie ich es will, allerdings hört nach 5 Sekunden das Rechteck ohne (für mich) ersichtlichen Grund auf, sich zu bewegen. Hat jemand eine Idee, warum das so ist?

Hier ist der Code:
int main(int argc, char *argv[]){

SDL_Surface *pScreen;
SDL_Rect Rect;
Rect.x = 10;
Rect.y = 10;
Rect.w = 10;
Rect.h = 10;
Timer MyTimer;
SDL_Init (SDL_INIT_VIDEO | SDL_INIT_TIMER);
pScreen = SDL_SetVideoMode (800, 600, 16, SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_FULLSCREEN);

for (int i = 0; i < 20; i++){
MyTimer.warte();
SDL_FillRect (pScreen, NULL, SDL_MapRGB (pScreen->format,0,0,0));
SDL_FillRect (pScreen, &Rect, SDL_MapRGB (pScreen->format,0,0,250));
Rect.x = Rect.x + 10;
SDL_Flip(pScreen);
}

SDL_Quit();
return 0;
}

"Timer" ist eine kleine Klasse, die die Zeit messen kann. Hab sie hier weggelassen, da sie einwandfrei funktioniert.

Danke für Eure Hilfe,
Knobbers
 
Hallo Knobbers,
kann das möglicherweise daran liegen, dass deine for-Schleife nach 200 Pixeln (20x10) abläuft? Versuche mal folgendes:
Code:
[...]
for (int i = 0; i < 80; i++)
{
[...]

Dass müsste für die gesamte Breite des Bildschirmes reichen.

MfG, DerMitDemDer.
 
Zurück