Tutorial SDL

Tutorial sobre a biblioteca SDL com exemplos práticos.

[ Hits: 47.743 ]

Por: Samuel Leonardo em 01/11/2013


Dando vida ao programa: o loop principal



Arquivo: loop.c

#include <SDL/SDL.h>

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.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Aplicação básica
   3. Dando vida ao programa: o loop principal
   4. Eventos no SDL
   5. Controlando uma imagem com o teclado
Outros artigos deste autor

Programação de Jogos com SDL

Desenhando um avatar do Tux no InkScape

Dicas para aprender programação

Criatividade para TI parte 1

Algoritmo Antissocial - Recuperando o Controle da sua Mente

Leitura recomendada

Análise dos Métodos de Ordenação usados em Algoritmos Computacionais

Linguagem C - Listas Duplamente Encadeadas

Algoritmo... como fazer?

Dicas para aprender programação

Guia de Programação em C/GTK 2 - Construindo uma Calculadora Completa

  
Comentários
[1] Comentário enviado por nelson777 em 01/11/2013 - 15:40h

Finalmente um artigo de C que não é só mais um algoritmo básico de criança e sim algo útil. Parabéns.

[2] Comentário enviado por tsuriu em 03/11/2013 - 20:49h

Parabéns cara... Muito bom o artigo.

[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.

att.

[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.

[6] Comentário enviado por SamL em 04/11/2013 - 14:03h

É um L minúsculo. Avisa se funcionar quando testar.

[7] Comentário enviado por danilo3610 em 04/11/2013 - 19:24h

Era isso mesmo, troquei o I pelo l e funcionou, obrigado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts