1 | int main(int argc, char **argv)
|
2 | {
|
3 |
|
4 | if (SDL_Init ( SDL_INIT_VIDEO ) != 0)
|
5 | { //SDL Initialisierung
|
6 | printf ("SDL Initialisierung fehlgeschlagen: %s\n",
|
7 | SDL_GetError ()); //Bei Fehler, beenden
|
8 | return EXIT_FAILURE;
|
9 | }
|
10 | atexit (SDL_Quit); //Beim beenden des Programms wird SDL_Quit ausgeführt
|
11 | screen = SDL_SetVideoMode (640, 480, 16, SDL_SWSURFACE); // Erstelle Screen
|
12 | if (screen == NULL)
|
13 | { //Bei Fehler
|
14 | printf ("Auflösung nicht gefunden: " //Fehler melden!
|
15 | " %s\n", SDL_GetError ());
|
16 | return EXIT_FAILURE;
|
17 | }
|
18 | //SDL_Delay (2000); //Warte 2000 Millisec.
|
19 | //printf ("Alles OK!\n"); //Beenden mit "Alles OK!"
|
20 |
|
21 | image = IMG_Load("wuerfel.JPG");
|
22 | if ( image == NULL )
|
23 | {
|
24 | printf("Das Bild konnte nicht geladen werden: %s\n", SDL_GetError());
|
25 | exit(-1);
|
26 | }
|
27 | /*
|
28 | //Apply the surface to the screen
|
29 | apply_surface( 0, 0, image, screen );
|
30 |
|
31 | //Update the screen
|
32 | if( SDL_Flip( screen ) == -1 )
|
33 | {
|
34 | return 1;
|
35 | }
|
36 | */
|
37 | rect.x = 0;
|
38 | rect.y = 0;
|
39 | rect.w = 0;
|
40 | rect.h = 0;
|
41 | SDL_BlitSurface(image, NULL, screen, &rect);
|
42 | SDL_UpdateRect(screen, rect.x, rect.y, rect.w, rect.h);
|
43 |
|
44 | while (!quit)
|
45 | {
|
46 | SDL_PollEvent (&e);
|
47 | bKey = SDL_GetKeyState (NULL);
|
48 | if (bKey[SDLK_ESCAPE])
|
49 | quit = 1;
|
50 | if (bKey[SDLK_LEFT] && rect.x > 0)
|
51 | rect.x--;
|
52 | if (bKey[SDLK_RIGHT] && rect.x < 640)
|
53 | rect.x++;
|
54 | if (bKey[SDLK_UP] && rect.y > 0)
|
55 | rect.y++;
|
56 | if (bKey[SDLK_DOWN] && rect.y < 480)
|
57 | rect.y++;
|
58 | printf("rect.x = %d rect.y = %d\n",rect.x,rect.y);
|
59 |
|
60 | SDL_BlitSurface(image, NULL, screen, &rect);
|
61 | SDL_UpdateRects(image,1,&rect);
|
62 |
|
63 | SDL_FreeSurface(image);
|
64 |
|
65 | SDL_Delay(500);
|
66 | }
|
67 |
|
68 | return EXIT_SUCCESS;
|
69 | }
|