segunda-feira, 12 de março de 2007

SDL - Parte 3


Olá pessoal,
Resolvi postar hoje um tutorial como fazer para importar figuras Bitmap para uma interface SDL. Neste artigo estou utilizando somente arquivos bitmap mesmo, ou seja, arquivos com a extensão .BMP. No próximo artigo, pretendo ensinar-lhes como inserir outro formato de imagem.

Bom, vamos nessa:
Dê uma olhada nesse código:

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

int main(int argc, char *argv[]){
SDL_Surface *janela, *imagem;
SDL_Rect rect;
Uint8 *tecla;
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);
}

rect = (SDL_Rect) {400, 300, NULL, NULL};
imagem = SDL_LoadBMP("/imagens/imagem.bmp");
SDL_BlitSurface(imagem, NULL, janela, &rect);
SDL_Flip(janela);

while(sair == 0){
SDL_PollEvent(NULL);
tecla = SDL_GetKeyState(NULL);
if(tecla[SDLK_ESCAPE]) sair = 1;
}

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


Bom, para compilar todos vocês já devem estar careca de saber né?
gcc -o teste arquivo.c -lSDL

Bom, o que há de novo nesse código?

Temos um novo tipo de dados: SDL_Rect
Este cara, nada mais faz do que indicar a posição da imagem na surface. Você pode perceber que tivemos dois warnings quando compilamos o código, certo? É por causa dele mesmo, mas hoje não vou explicar o que é aquilo.

Ainda temos o imagem = SDL_LoadBMP("/imagens/imagem.bmp"); onde passamos como parâmetro o local da imagem. Pode ser tanto caminho absoluto, quanto sua pasta local.

Depois temos: rect = (SDL_Rect) {400, 300, NULL, NULL}; Este cara é o SDL_Rect que declaramos lá em cima, onde dizemos a posição de origem dele (400, 300), os outros parâmetros passarei depois para que servem também, caso estejam com pressa, man SDL_Rect ;-)

Agora o SDL_BlitSurface(imagem, NULL, janela, &rect); este cara, é a função que vai indicar onde que vai ser inserida a imagem que acabamos de pedir. ou seja, insira a imagemna janela com o rect, ou seja na posição indicada por rect.

Bom pessoal, por hoje é isso que eu queria postar, já sabem né: Comentem, corrijam, critiquem ....
É isso ai, obrigado e uma ótima semana a todos!
Fui!

Nenhum comentário:

buscapé

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