#include <SDL.h>
Uint8 * keystate = SDL_GetKeyState( NULL );
SDL_Surface * ekran = NULL;
SDL_Surface * bg = NULL;
SDL_Surface * map = NULL;
SDL_Surface * chars = NULL;
SDL_Event zdarzenie;
bool wyjscie = false;
SDL_Rect sprst[ 1 ];
SDL_Rect dprst[ 100 ];
SDL_Rect charss;
int x;
int y = 24;
int level = 1;
int graw;
int main( int argc, char * args[] )
{
dprst[ 0 ].x = 0;
dprst[ 0 ].y = 64;
dprst[ 1 ].x = 16;
dprst[ 1 ].y = 64;
dprst[ 2 ].x = 32;
dprst[ 2 ].y = 64;
dprst[ 3 ].x = 48;
dprst[ 3 ].y = 64;
dprst[ 4 ].x = 64;
dprst[ 4 ].y = 64;
dprst[ 5 ].x = 80;
dprst[ 5 ].y = 64;
dprst[ 6 ].x = 96;
dprst[ 6 ].y = 64;
dprst[ 7 ].x = 112;
dprst[ 7 ].y = 64;
dprst[ 8 ].x = 128;
dprst[ 8 ].y = 64;
dprst[ 9 ].x = 144;
dprst[ 9 ].y = 64;
dprst[ 10 ].x = 160;
dprst[ 10 ].y = 64;
dprst[ 11 ].x = 176;
dprst[ 11 ].y = 64;
dprst[ 12 ].x = 192;
dprst[ 12 ].y = 64;
dprst[ 13 ].x = 208;
dprst[ 13 ].y = 64;
dprst[ 14 ].x = 224;
dprst[ 14 ].y = 64;
dprst[ 15 ].x = 240;
dprst[ 15 ].y = 64;
dprst[ 16 ].x = 256;
dprst[ 16 ].y = 64;
dprst[ 17 ].x = 272;
dprst[ 17 ].y = 64;
dprst[ 18 ].x = 288;
dprst[ 18 ].y = 64;
dprst[ 19 ].x = 304;
dprst[ 19 ].y = 64;
dprst[ 20 ].x = 320;
dprst[ 20 ].y = 64;
dprst[ 21 ].x = 336;
dprst[ 21 ].y = 64;
dprst[ 22 ].x = 352;
dprst[ 22 ].y = 64;
dprst[ 23 ].x = 368;
dprst[ 23 ].y = 64;
dprst[ 24 ].x = 384;
dprst[ 24 ].y = 64;
dprst[ 25 ].x = 400;
dprst[ 25 ].y = 64;
dprst[ 26 ].x = 416;
dprst[ 26 ].y = 64;
dprst[ 27 ].x = 432;
dprst[ 27 ].y = 64;
dprst[ 28 ].x = 448;
dprst[ 28 ].y = 64;
dprst[ 29 ].x = 464;
dprst[ 29 ].y = 64;
dprst[ 30 ].x = 480;
dprst[ 30 ].y = 64;
dprst[ 31 ].x = 496;
dprst[ 31 ].y = 64;
dprst[ 32 ].x = 512;
dprst[ 32 ].y = 64;
dprst[ 33 ].x = 528;
dprst[ 33 ].y = 64;
dprst[ 34 ].x = 544;
dprst[ 34 ].y = 64;
dprst[ 35 ].x = 560;
dprst[ 35 ].y = 64;
dprst[ 36 ].x = 576;
dprst[ 36 ].y = 64;
dprst[ 37 ].x = 592;
dprst[ 37 ].y = 64;
dprst[ 38 ].x = 608;
dprst[ 38 ].y = 64;
dprst[ 39 ].x = 624;
dprst[ 39 ].y = 64;
SDL_Init( SDL_INIT_EVERYTHING );
ekran = SDL_SetVideoMode( 640, 480, 32, SDL_SWSURFACE );
bg = SDL_LoadBMP( "bg.bmp" );
map = SDL_LoadBMP( "grass.bmp" );
chars = SDL_LoadBMP( "char.bmp" );
SDL_WM_SetCaption( "MiniGame", NULL );
while( !wyjscie )
{
while( SDL_PollEvent( & zdarzenie ) )
{
if( zdarzenie.type == SDL_QUIT )
{
wyjscie = true;
}
if( level == 1 )
{
switch( zdarzenie.key.keysym.sym )
{
case SDLK_RIGHT:
x = x + 8;
break;
case SDLK_LEFT:
if( x <= 0 )
{
}
else
{
x = x - 8;
}
break;
case SDLK_DOWN:
if( y > 24 )
{
}
else
{
y = y + 8;
}
break;
case SDLK_UP:
if( y < 16 )
{
}
else
{
y = y - 8;
}
break;
}
}
if( level == 1 )
{
SDL_BlitSurface( bg, NULL, ekran, NULL );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 0 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 1 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 2 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 3 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 4 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 5 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 6 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 7 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 8 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 9 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 10 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 11 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 12 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 13 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 14 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 15 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 16 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 17 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 18 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 19 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 20 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 21 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 22 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 23 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 24 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 25 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 26 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 27 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 28 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 29 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 30 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 31 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 32 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 33 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 34 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 35 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 36 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 37 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 38 ] );
SDL_BlitSurface( map, NULL, ekran, & dprst[ 39 ] );
}
charss.x = x;
charss.y = y;
SDL_BlitSurface( chars, NULL, ekran, & charss );
}
if( x >= 624 )
{
level = 2;
x = 0;
}
SDL_Flip( ekran );
}
SDL_Quit();
return 0;
}
Zastanawiam się nad dwoma rzeczami, co zrobić aby gra była bardziej płynna ? Jak stworzyć grawitację ? (przyciąganie do określonego obrazka map.png)