SDL HILFE BRAUCHE HILFE !!!
-
Wiso Funktioniert dass nicht ???? Der PC Stürzt immer ab

#include <SDL.h> #include <string> #include <iostream> #include <windows.h> SDL_Surface *pScreen; SDL_Surface *pImage; SDL_Rect Rect; using namespace std; void LoadBackground(const string sFilename) { if(SDL_Init(SDL_INIT_VIDEO) == -1) { exit(1); } pScreen = SDL_SetVideoMode(800,600,16, SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_FULLSCREEN); if(pScreen == NULL) { exit(1); } pImage = SDL_LoadBMP(sFilename.c_str()); if(pImage == NULL) { exit(1); } Rect.x = 0; Rect.y = 0; Rect.w = pImage->w; Rect.h = pImage->h; SDL_FillRect(pScreen,NULL,SDL_MapRGB(pScreen->format,255,255,255)); SDL_BlitSurface(pImage,NULL,pScreen,&Rect); } int main(int argc, char *argv[]) { int a; while(a != 5) { LoadBackground("Background.bmp"); } return(0); }PS: Bitte nicht in Spieleprogrammierung Verschieben(Sonst kann ich nicht mehr antworten ;))
-
weil du 'a' niemals erhöhst -> Endlosschleife.
-
du könntest dich ja auch einfach anmelden

ach übrigens: coole überschrift
int a; while(a != 5) { LoadBackground("Background.bmp"); }was soll denn das sein? entweder a ist zufällig 5, dann passiert gar nichts, oder a ist zufällig nicht fünf, dann ist das ne endlosschleife

ich vermute mal, dass sdl_init und sdl_setvideomode nur einmal aufgerufen werden sollten.
-
ach ja, und das geladene bild (bzw, in deinem fall, die unmenge an geladenen bildern) sollte man vielleicht auch wieder freigeben

-
So funktioniert dass aber immernoch nicht
#include <SDL.h> #include <string> #include <iostream> #include <windows.h> SDL_Surface *pScreen; SDL_Surface *pImage; SDL_Rect Rect; using namespace std; void LoadBackground(const string sFilename) { if(SDL_Init(SDL_INIT_VIDEO) == -1) { exit(1); } pScreen = SDL_SetVideoMode(800,600,16, SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_FULLSCREEN); if(pScreen == NULL) { exit(1); } pImage = SDL_LoadBMP(sFilename.c_str()); if(pImage == NULL) { exit(1); } Rect.x = 0; Rect.y = 0; Rect.w = pImage->w; Rect.h = pImage->h; SDL_FillRect(pScreen,NULL,SDL_MapRGB(pScreen->format,255,255,255)); SDL_BlitSurface(pImage,NULL,pScreen,&Rect); } int main(int argc, char *argv[]) { int a; LoadBackground("Background.bmp"); while(pScreen != NULL) { } return(0); }Die Schleide ist da dass proggi nicht Beendet wird :-
-
also ich empfehl dir erstmal n tutorial anzuschaun, z.B. http://www.pronix.de/pronix-519.html
mfg blan
-
zum beenden fehlt sowas wie SDL_Quit
die events solltest auch abfragen
bsp zB da:
http://de.wikibooks.org/wiki/SDL
-
Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum Spiele-/Grafikprogrammierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Ganz ehrlich: Programmier' erst mal einen Taschenrechner in der Konsole oder sowas...
