int main()
{
SDL_Init(SDL_INIT_VIDEO); // Inicializa o SDL e o sistema de vídeo
SDL_Surface * screen; // A janela principal
SDL_Surface * image; // A imagem
screen = SDL_SetVideoMode(640, 480, 16, SDL_SWSURFACE); // Cria a janela
image = SDL_LoadBMP("ball.bmp"); // Carrega a imagem no formato BMP
// Verifica se carregou a imagem
if (image == NULL)
{
printf("Não foi possivel abrir ball.bmp\n");
return 1;
}
int done = 0; // Variável de controle do loop
while (done == 0) // Enquanto não concluir
{
SDL_BlitSurface(image, NULL, screen, NULL); // Joga a imagem inteira na tela
SDL_Delay(60);
}
SDL_Quit(); // Fecha o SDL
return 0;
}
Para compilar:
gcc -o loop loop.c -lSDL
Toda aplicação possui um loop principal. É nele onde, praticamente, todo o programa se situa.
Vamos criar um pequeno loop para evitar ter de ficar repetindo o mesmo código várias vezes. O programa acima "blita" uma imagem a cada 60 milissegundos. Ou seja, entrou no loop, "blita" a imagem, em seguida, espera 60 milissegundos e entra numa nova interação e assim por diante, infinitamente, pois NÃO há uma condição de parada.
A janela permanece aberta até que se feche o terminal ou mate o processo do programa. Mais à frente, iremos aprender sobre eventos e criaremos uma condição de parada com eles.
[3] Comentário enviado por danilo3610 em 04/11/2013 - 08:53h
Muito bom tutorial Samuel, segui passo a passo este tutorial no meu ubuntu 13.10 64bits,
instalei o SDL_DEV e usei o seu primeiro exemplo porem ao compilar (incluindo -ISDL)
apresentava erros com SDL_Init - "Undefined reference to SDL_Init...". Procurei na net
mas ninguem teve este mesmo problema, já aconteceu com alguem? Se alguem tiver alguma
solução agradeço. Lembrando instalei o SDL_DEV como mostra o tutorial.
[4] Comentário enviado por SamL em 04/11/2013 - 11:32h
Esse problema geralmente acontece quando NÃO se usa -lSDL no final do comando. Veja se você compilou assim: gcc -o janela_01 janela_01.c -lSDL
com o link -lSDL no final.
Se não resolver talvez você tenha instalado a SDL 2.0, veja na pasta /usr/include/ se tem a pasta SDL2.
Se também não resolver, não sei mais o que fazer rsrsrs
[5] Comentário enviado por danilo3610 em 04/11/2013 - 14:00h
Talvez tenha confundido mas só uma duvida, a primeira letra é um l ou i maiúsculo? Desconfio que seja um L minúsculo e
tenha colocado um i maiúsculo no lugar. Quando chegar em casa irei testar.