Game Programming in C++ - Day 1

이응민·2024년 7월 11일
0

Game Programming in C++

목록 보기
1/21

Day 1 SDL 라이브러리 적용, 개발 환경 구축 및 테스트

game.h

game.cpp

Initialize() 함수

SDL_Init 함수를 이용해 SDL라이브러리를 초기화한다.
지금은 비디오 서브시스템만 초기화하면 되므로 SDL_INIT_VIDEO를 SDL_Init함수로 초기화한다.

윈도우 서브 시스템 플래그

  • SDL_INIT_AUDIO : 오디오 장치관리, 재생 및 녹음
  • SDL_INIT_VIDEO : 윈도우 생성, OpenGL 관련 인터페이스 2D 그래픽스를 위한 비디오 서브시스템
  • SDL_INIT_HAPTIC : 포스 피드백 이펙트 서브시스템
  • SLD_INIT_GAMECONTROLLER : 컨트롤러 입력 장치를 지원하는 서브 시스템

SDL_Init 함수는 정수값을 반환, 0이면 성공 0이 아니라면 초기화 실패를 의미한다.
그리고 game.h에서 SDL_Window(SDL_Window* mWindow)로 생성한 윈도우 창을 생성, 초기화한다.
SDL_CreateWindow()함수는 다음과 같은 파라미터를 갖는다

  • 윈도우 제목
  • 윈도우가 배치될 x/y 좌표
  • 윈도우의 너비와 높이
  • 윈도우 생성 관련 플래그
    mWindow는 생성이 실패하면 nullptr이므로 그것으로 생성 성공여부를 판단한다.

윈도우 생성 플래그

  • SDL_WINDOW_FULLSCREEN : 전체화면 모드 사용
  • SDL_WINDOW_FULLSCREEN_DESKTOP : 현재 데스크탑의 해상도로 전체 화면 모드 사용. 입력 받은 너비/높이 파라미터 무시
  • SDL_WINDOW_OPENGL : OpenGL 그래픽스 라이브러리에 대한 지원 추가
  • SDL_WINDOW_RESIZABLE : 윈도우 창 크기 조절 가능

ShutDown() 함수

먼저 SDL_DestoryWindow 함수로 SDL_Window 객체를 해제하고 SDK_Quit 함수로 SDL을 닫는다.

RunLoop() 함수

RunLoop() 함수는 mIsRunning이 false가 될 때 까지 게임 루프를 반복해서 실행한다.
게임 루프는 각 단계에 대한 3가지 헬퍼 함수(ProcessInput, UpdateGame, GenerateOutput)가 있으므로 간단히 루프 내부에서 이 헬퍼 함수들만 호출한다.

main.cpp

main.cpp 소스파일에서는 게임 초기화, 루프, 셧다운을 실행한다.

실행화면

0개의 댓글