INFORMAÇÃO IMPORTANTE PARA OS TUTORIAIS!
Qualquer método da SDL que encontrar aqui e não entender sua função, Pesquise-a na WIKI da SDL.
Agora que já sabemos criar uma janela, SDL2 CRIANDO UMA JANELA, vejamos como colocar uma imagem na tela.
Primeiro devemos incluir a biblioteca "SDL2/SDL_image.h" A imagem, assim como a janela, precisa de um variável para ser utilizada. O tipo dessa varável é SDL_Surface*. Além disso, uma variável para a superfície da janela será necessária. Nessa variável retornaremos a superfície associado com a janela.
#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
using namespace std;
int main(int argc, char **argv) {
SDL_Init(SDL_INIT_VIDEO);//Inicializa a SDL
SDL_Window *janela = NULL;//Variavel da janela
SDL_Surface *imagem = NULL;//Variável da Imagem
SDL_Surface *superficie = NULL;
Depois de ter declarado a variável da imagem, da superficíe, ter inicializado o vídeo e criado a janela. Vamos pegar os dados da janela armazená-los na variável da superfície com o comando SDL_GetWindowSurface(janela). A imagem, iremos carregá-la na variável criada para armazena-la utilizando: IMG_Load("diretório da imagem/nome da iamgem.extensão"). (Lembrando que este comando funciona apenas com a biblioteca SDL2_Image).
O comando SDL_BlitSurface nos permitirá mostrar a imagem na tela assim que solicitarmos que está seja atualizada.
Vejamos:
superficie = SDL_GetWindowSurface(janela);
imagem = IMG_Load("Imagens/OlaSDL2.png");//carrega a imagem
SDL_BlitSurface(imagem, NULL ,superficie ,NULL);//Desenha a imagem na janela
SDL_UpdateWindowSurface(janela);//Atualiza a janela
SDL_Delay(3000);//Espera 3 segundos
Os parâmetros do método SDL_BlitSurface são respectivamente: o nome da variável da imagem, O local de origem, o tamanho da tela e o local de destino. Esses parâmetros serão abordados novamente de forma mais clara e manipulável no tutorial de eventos com o mouse.
Agora, para evitar a ocupação de memória total do sistema, devemos liberar as imagens:
SDL_FreeSurface(nome da variavel)
SDL_FreeSurface(imagem);
SDL_FreeSurface(superficie);//libera a imagem
SDL_DestroyWindow(janela);
SDL_Quit();
return 0;
}
Exemplo de saída da imagem:
Faça o dowload do projeto aqui: https://drive.google.com/openid=0B9s0AqjHtGwGNmV1MEhQTWZ0cTQ
Veja como criar o loop no game!
(link em breve)
Alguma duvida? comente abaixo!