quarta-feira, 21 de março de 2007

SDL - Parte 4

Olá pessoal!
Depois de um grande período sem novos posts, finalmente consegui arranjar um tempo para poder adicionar esta continuação do nosso "curso" de SDL.
Objetivos deste artigo:
1. Aprender a utilizar um pequeno evento de fechar janela
2. Aprender como importar imagens de outros formatos, diferentes de BMP.

Vamos lá, dê uma estudada neste código:

#include <stdio.h>
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>

int main(int argc, char *argv[]){
SDL_Surface *janela, *imagem;
SDL_Rect rect;
SDL_Event evento;
int x, y;
int sair = 0;

if(SDL_Init(SDL_INIT_EVERYTHING) == -1){
printf("Problema na inicialização do SDL");
exit(1);
}
janela = SDL_SetVideoMode(800, 600, 32, SDL_ANYFORMAT |
SDL_DOUBLEBUF);
if(!janela){
printf("Problema na inicialização da janela");
exit(1);
}

x=100;
y=100;

while(sair == 0){
if(evento.type == SDL_QUIT)
sair = 1;
else{
SDL_PollEvent(&evento);
rect = (SDL_Rect) {x, y, NULL, NULL};
imagem = IMG_Load("imagens/img.jpg");
SDL_BlitSurface(imagem, NULL, janela, &rect);
SDL_Flip(janela);
x = x+10;
y = y+10;
SDL_Delay(30);
}
}

SDL_FreeSurface(imagem);
SDL_FreeSurface(janela);
SDL_Quit();
return 0;
}


Para compilar este código basta utilizar: gcc -o sdl4 sdl_parte4.c -lSDL -lSDL_image
Bom, como você deve ter percebido, temos algumas coisas iguais ao código passado.
O que nos interessa neste novo código é o seguinte:
A biblioteca SDL_image.h que contém as funções para tratamento de imagem.
A linha SDL_Event evento; -> Aqui nós declaramos um evento, com ele podemos fazer algumas coisas bem divertidas, mas isso vou deixar para um próximo post;
Agora na linha if(evento.type == SDL_QUIT) -> nós estamos verificando se a janela foi fechada (com ALT + F4 ou clique mesmo).
Depois o que temos é o seguinte imagem = IMG_Load("imagens/img.jpg");. Esta função não faz nada mais do que procurar a imagem passada como parâmetro e retornar para a surface.
Depois nós somente movimentamos a imagem chamada.
Agora como "lição de casa" que tal adicionar um fundo a janela?

Bom pessoal, por hoje é isso. Fiz este artigo meio que às pressas, portanto qualquer correção ou falha, mande-me um email ou adicione um comentário.
Obrigado e até a próxima!.

2 comentários:

Erick disse...

Eu gosto muito dos seus tutoriais porque parou de postar?

Erick disse...

Eu gosto muito dos seus tutoriais porque parou de postar?

buscapé

dell
Saiba onde tem o melhor preço antes de comprar