Ruutu

Mureakuha

Loikkaa: valikkoon, hakuun

Tämä yksinkertainen ohjelma maalaa kuvaruudun täyteen neliöitä.

Kuva:Ruutu.png

#include <SDL.h>
#include <stdlib.h> // rand() esittely.
 
// laiska tapa lisätä kirjastoja
#pragma comment(lib, "SDLmain.lib")
#pragma comment(lib, "SDL.lib")
 
// Piirrettävän ruudun koko pikseleinä
#define BLOCKSIZE   20
 
int main( int argc, char* argv[] )
{
    SDL_Surface * scr; 
    SDL_Rect rc;
    Uint32 col;
    int i,y;
    // Valittavat värit
    Uint32 colors[] = { 0xF8F8FF, 0x191970, 0x4682B4, 0x000080, 0xB0E0E6};
 
    // Alustetaan SDL kirjasto.
    if( SDL_Init(SDL_INIT_VIDEO) < 0 )  
    {
        fprintf(stderr, "SDL error: %s\n", SDL_GetError()); 
        return 0; 
    } 
    
    // Asetetaan näyttötila.
    scr = SDL_SetVideoMode(1024, 768, 32, SDL_HWSURFACE|SDL_FULLSCREEN); 
    if(scr == NULL)
    {
        fprintf(stderr, "SDL error: %s\n", SDL_GetError()); 
        return 0; 
    } 
 
    // Piilotetaan hiiri
    SDL_ShowCursor(SDL_DISABLE);
    
    // Poistetaan käytöstä kaikki ylimääräiset tapahtumat
    for ( i = 0; i<SDL_NUMEVENTS; ++i ) 
    {
        if((i != SDL_KEYDOWN) &&
		   (i != SDL_QUIT) &&
		   (i != SDL_MOUSEBUTTONDOWN)) 
        {
            SDL_EventState(i, SDL_IGNORE);
				}
	}
 
    // Piirretään jokainen ruutu erikseen.
    while(SDL_PollEvent(NULL) == 0) 
    {        
        for(i=6; i<1012; i+=BLOCKSIZE)
        {
            rc.x = i;
            rc.y = BLOCKSIZE;
            rc.h = rc.w = BLOCKSIZE;
            i=i+2;
            for(y=0; y<768; y+=BLOCKSIZE)
            {
                rc.y = y;
                y=y+2;         
                col = colors[rand()% sizeof(colors)/sizeof(Uint32)];
                SDL_FillRect(scr, &rc, col);
            }
        }
        SDL_Delay(200);
    }
    SDL_Quit();
    return 0;
}
Henkilökohtaiset työkalut