capribeach software : Testprogramm1

Startseite :: Categories :: PageIndex :: RecentChanges :: RecentlyCommented :: Login/Register

Grafikfenster mit SDL erzeugen und eine Bilddatei laden


Dieses Programm würde mit der WIN32 um einiges länger ausfallen. SDL macht das Laden von Bilddateien sehr einfach.

sdl_testprogramm1.cpp (line 1)
  1. #include "SDL.h"
  2.  
  3. int main ( int argc, char *argv[] )
  4. {
  5.   /* Initialisierung */
  6.   SDL_Init(SDL_INIT_VIDEO);
  7.  
  8.   /* Fenstertitel */
  9.   SDL_WM_SetCaption("capribeach software", 0);
  10.  
  11.   /* Screen bilden */
  12.   SDL_Surface* screen = SDL_SetVideoMode(640, 480, 0, 0);
  13.  
  14.   /* Bitmap in eine temporäre Surface laden */
  15.   SDL_Surface* temp = SDL_LoadBMP("meerkat.bmp");
  16.  
  17.   /* Bitmap ins Displayformat konvertieren */
  18.   SDL_Surface* bg = SDL_DisplayFormat(temp);
  19.  
  20.   /* temporäre Surface freigeben */
  21.   SDL_FreeSurface(temp);
  22.  
  23.   SDL_Event event;
  24.   int gameover = 0;
  25.  
  26.   /* Game Loop */
  27.   while (!gameover)
  28.   {
  29.     /* Ereignisse abfangen */
  30.     if (SDL_PollEvent(&event)) {
  31.      
  32.       switch (event.type) {
  33.        
  34.         case SDL_QUIT:
  35.           gameover = 1;
  36.           break;
  37.  
  38.         /* Tastaturereignisse abfangen */
  39.         case SDL_KEYDOWN:
  40.           switch (event.key.keysym.sym) {
  41.             case SDLK_ESCAPE:
  42.             case SDLK_q:
  43.               gameover = 1;
  44.               break;
  45.           }
  46.           break;
  47.       }
  48.     }
  49.  
  50.     /* Hintergrund zeichnen */
  51.     SDL_BlitSurface(bg, NULL, screen, NULL);
  52.  
  53.     /* Screen updaten */
  54.     SDL_UpdateRect(screen, 0, 0, 0, 0);
  55.   }
  56.  
  57.   /* Hintergrund-Surface freigeben*/
  58.   SDL_FreeSurface(bg);
  59.  
  60.   /* SDL aufräumen */
  61.   SDL_Quit();
  62.  
  63.   return 0;
  64. }


Das Ergebnis ist eine klassische Fensteranwendung, die per Maus oder Tastatur (ESC) geschlossen werden kann.

sdl-testprogramm1



CategorySDL

There are no comments on this page. [Add comment]

Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by WikkaWiki
Page was generated in 0.1011 seconds