728x90

Game Programming [c++] 5

SDL을 이용한 공 튀기기 [c++]

SDL을 이용하여 공튀기기를 만들어 보았다. 코드를 작성하면서 유니티로 하면 구현하기 훨씬 수월할 텐데 라는 생각을 계속 했던것 같다...ㅠ 그래도 어느정도 규모있는 게임회사에서는 최적화 등을 이유로 c++을 사용한 자체 엔진이나 아예 엔진없이 구현하는 경우도 많다고 하니 계속 연습해볼 계획이다. 툴은 visual studio를 이용하였다. 코드는 아래 깃허브 링크에 올려두었다. https://github.com/parksubo/BounceBall

SDL 추가 설명

o SDL은 OS로부터 받는 이벤트를 내부에 존재하는 큐(queue)로 관리함 (I/O 장치 입력뿐만아니라 윈도우 액션 이벤트 포함) o 프레임마다 게임은 큐에 이벤트가 존재하는지 폴링(pooling)함 - pooling : 프로그램(or 장치)이 충돌회피 또는 동기화 처리를 목적으로 다른 프로그램의 상태를 주기적으로 검사하여 조건을 만족할 때만 자료처리를 하는 방식

SDL flags

o SDL 서브시스템 플래그 - SDL_INIT_AUDIO : 오디오 장치관리, 재생 및 녹음 서브시스템 - SDL_INIT_VIDEO : 윈도우 생성, OpenGL 관련 인터페이스 2D 그래픽스를 위한 비디오 서브시스템 - SDL_INIT_HAPTIC : 포스 피드백 이펙트 서브시스템 - SDL_INIT_GAMECONTROLLER : 컨트롤러 입력장치를 지원하는 서브시스템 o 윈도우 생성 플래그 - SDL_WINDOW_FULLSCREEN : 전체화면 모드 사용 - SDL_WINDOW_FULLSCREEN_DESKTOP : 현제 데스크톱의 해상도로 전체화면 모드 사용, SDL_CreateWindow가 전달 받는 너비/높이 파라미터는 무시 - SDL_WINDOW_OPENGL : OpenGL 그래픽스 라이브러..

Visual Studio SDL2 라이브러리 사용 방법

o SDL에서 SDL2 헤더와 라이브러리를 다운로드 한다(Visual C++을 사용할 것이기 때문에 VC용으로 다운로드) o 이후 Main.cpp 파일을 소스파일에 추가해 준다. o 이후 프로젝트 속성에 들어가서 아래 3가지 작업을 해준다. C/C++ -> 일반 -> 추가 포함 디렉터리 -> $(SolutionDir)\SDL2-2.0.18\include Linker -> 일반 -> 추가 라이브러리 디렉터리 -> $(SolutionDir)\SDL2-2.0.18\lib\x86 (수정) Linker -> 입력 -> 추가 종속성 - > SDL2.lib;SDL2main.lib 추가 o SDL2.2.0.18 을 압축해제한다. o SDL2-2.0.18에 있는 SDL2.dll 파일을 프로젝트 안에 옮겨준다. o 이후 ..

게임 개발 용어 정리 #1

o 크로스 플랫폼 라이브러리(Cross-platform library) - SDL (Simple DirectMedia Layer) : C로 작성된 크로스 플랫폼 게임 개발 라이브러리이다. SDL은 윈도우를 생성하거나 기본 2D그래픽을 생성하며 입력처리, 오디오 출력등의 기능을 지원한다. (Windows, Mac, Linux, iOS, Android) o 게임 루프 (Game loop) - 게임 프로그램의 전반적인 흐름을 제어하는 루프 - 플레이어가 게임을 종료하지 않는 한 계속해서 루프를 반복 - 게임루프의 각각의 반복을 프레임(Frame)이라고 함 : ex) 60FPS(Frames Per Second) 는 게임 루프가 초당 60번의 반복을 완료한다는 것 - 게임루프는 단일 쓰레드(single-threa..