4 #include <SDL/SDL_image.h>
12 static const char* filenames
[] = {
15 "data/player-racket.bmp",
23 void init_graphics() {
27 images
= (Image
*)calloc( GR_COUNT
, sizeof( Image
));
29 for( i
=0; i
<GR_COUNT
; i
++) {
30 data
= IMG_Load( filenames
[i
]);
32 fprintf( stderr
, "Error: %s\n", SDL_GetError());
35 images
[i
].data
= data
;
39 void uninit_graphics() {
42 for( i
=0; i
<GR_COUNT
; i
++) {
43 SDL_FreeSurface( images
[i
].data
);
49 void show_sprite( unsigned int id
, int pos
, int items
, int x_offset
, int y_offset
, int opacity
) {
53 bitmap
= images
[id
].data
;
57 SDL_SetAlpha( bitmap
, SDL_SRCALPHA
| SDL_RLEACCEL
, opacity
);
58 SDL_SetColorKey( bitmap
, SDL_SRCCOLORKEY
, SDL_MapRGB( bitmap
->format
, 0, 0, 0));
60 dst
.w
= src
.w
= bitmap
->w
/items
;
61 dst
.h
= src
.h
= bitmap
->h
;
67 SDL_BlitSurface( bitmap
, &src
, screen
, &dst
);
70 void show_image( unsigned int id
, int x_offset
, int y_offset
, int opacity
) {
71 show_sprite( id
, 0, 1, x_offset
, y_offset
, opacity
);
74 void show_digit( int zahl
, int x_offset
, int y_offset
, int opacity
) {
75 show_sprite( GR_SCORE
, zahl
, 11, x_offset
, y_offset
, opacity
);
78 void introimage( unsigned int id
) {
81 for( i
=0; i
<256; i
+=10) {
83 show_image( id
, 0, 0, i
);
91 for( i
=255; i
>=0; i
-=10) {
93 show_image( id
, 0, 0, i
);
109 SDL_FillRect( screen
, &rect
, SDL_MapRGB( screen
->format
, 0, 0, 0));
113 SDL_UpdateRect( screen
, 0, 0, 0, 0);