🔊 SDL2 é uma biblioteca para criação de jogos 2D em C e C++, além de possuir bindings para diversas linguagens de programação. Nesse vídeo vamos ver como instalar no Windows e no Linux além de primeiros passos e dicas adicionais!
main.cpp
Serve tanto para Windows quanto para Linux.
#include <SDL2/SDL.h>
int main(int argc, char** argv) {
SDL_Window* window = NULL;
window = SDL_CreateWindow(
"SDL2 It's Work!",
SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
640, 480,
SDL_WINDOW_SHOWN
);
SDL_Renderer * renderer = SDL_CreateRenderer(window, -1, 0);
SDL_SetRenderDrawColor(renderer, 9, 20, 33, 255);
while(true){
SDL_Event event;
while(SDL_PollEvent(&event)){
if( event.type == SDL_QUIT ){
exit(0);
}
}
SDL_RenderClear(renderer);
SDL_RenderPresent(renderer);
}
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
//SDL_Quit();
return 0;
}
Compilar em distros GNU/Linux:
g++ main.cpp $(pkg-config --cflags --libs sdl2)
#include <SDL2/SDL.h>
int main(int argc, char** argv) {
SDL_Init(SDL_INIT_EVERYTHING);
SDL_Window* window = SDL_CreateWindow(
"SDL2 It's Works!",
50, 30,
1280, 720,
SDL_WINDOW_SHOWN
);
SDL_Renderer * renderer = SDL_CreateRenderer(window, -1, 0);
SDL_Surface * surface = SDL_LoadBMP("./sdl.bmp");
SDL_Texture * logo = SDL_CreateTextureFromSurface(renderer, surface);
SDL_FreeSurface(surface);
SDL_Rect rect, rect2;
rect.x = 50;
rect.y = 20;
rect.w = surface->w;
rect.h = surface->h;
rect2.x = 800;
rect2.y = 20;
rect2.w = 300;
rect2.h = 300;
while(true){
SDL_Event event;
while(SDL_PollEvent(&event)){
if( event.type == SDL_QUIT ){
exit(0);
}else if( event.type == SDL_MOUSEBUTTONDOWN ){
rect2.x -= 20;
}
}
SDL_RenderClear(renderer);
SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);
//SDL_RenderDrawRect(renderer, &rect2);
SDL_RenderFillRect(renderer, &rect2);
SDL_SetRenderDrawColor(renderer, 9, 20, 33, 255);
SDL_RenderCopy(renderer, logo, NULL, &rect);
SDL_RenderPresent(renderer);
}
SDL_DestroyTexture(logo);
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
Compilar em distros GNU/Linux:
g++ main.cpp $(pkg-config --cflags --libs sdl2)