[c++] SDL을 활용한 간단한 게임 예제

SDL은 Simple DirectMedia Layer의 약자로, 2D 그래픽 및 사운드를 다루는 데 사용되는 크로스 플랫폼 멀티미디어 라이브러리입니다. 이번 게임 예제에서는 SDL을 이용하여 2D 게임을 만드는 간단한 과정을 안내해 보겠습니다.

필수 사항

게임 창 생성

먼저, SDL과 관련 헤더 파일을 포함하여 새로운 C++ 파일을 생성합니다.

#include <SDL.h>

int main(int argc, char* args[]) {
    // SDL 초기화
    SDL_Init(SDL_INIT_VIDEO);

    // 창 생성
    SDL_Window* window = SDL_CreateWindow("Simple Game", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 800, 600, SDL_WINDOW_SHOWN);

    // 게임 루프
    bool isRunning = true;
    while (isRunning) {
        // 이벤트 처리
        SDL_Event event;
        while (SDL_PollEvent(&event) != 0) {
            if (event.type == SDL_QUIT) {
                isRunning = false;
            }
        }

        // 게임 화면 업데이트
        SDL_UpdateWindowSurface(window);
    }

    // SDL 정리
    SDL_DestroyWindow(window);
    SDL_Quit();

    return 0;
}

위 코드는 SDL을 사용하여 간단한 게임 창을 생성하고, 종료 이벤트가 발생할 때까지 게임 루프를 실행하는 예제입니다.

렌더링

다음 단계로는 이미지를 화면에 표시하는 기능을 추가해보겠습니다.

#include <SDL.h>

int main(int argc, char* args[]) {
    SDL_Init(SDL_INIT_VIDEO);

    SDL_Window* window = SDL_CreateWindow("Simple Game", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 800, 600, SDL_WINDOW_SHOWN);
    
    // 렌더러 생성
    SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);

    // 이미지 로드
    SDL_Surface* imageSurface = SDL_LoadBMP("image.bmp");
    SDL_Texture* imageTexture = SDL_CreateTextureFromSurface(renderer, imageSurface);
    SDL_FreeSurface(imageSurface);

    // 게임 루프
    bool isRunning = true;
    while (isRunning) {
        SDL_Event event;
        while (SDL_PollEvent(&event) != 0) {
            if (event.type == SDL_QUIT) {
                isRunning = false;
            }
        }

        // 이미지 렌더링
        SDL_RenderClear(renderer);
        SDL_RenderCopy(renderer, imageTexture, NULL, NULL);
        SDL_RenderPresent(renderer);
    }

    SDL_DestroyTexture(imageTexture);
    SDL_DestroyRenderer(renderer);
    SDL_DestroyWindow(window);
    SDL_Quit();

    return 0;
}

이제 이미지를 게임 창에 렌더링하는 코드가 추가되었습니다.

결론

이것으로 간단한 SDL을 이용한 게임 예제가 마무리되었습니다. SDL을 이용하면 게임 개발에 필요한 기본적인 기능들을 쉽게 구현할 수 있습니다. 더 많은 기능들을 추가하여 여러분만의 게임을 만들어보세요!

이번 튜토리얼에서 사용된 코드 및 자세한 내용에 대해서는 아래의 SDL 공식 문서(https://wiki.libsdl.org/Tutorials)를 참고하시기 바랍니다.