본문 바로가기
반응형
[C++로 배우는 게임 엔진 개발] Day 4: 윈도우 창 생성 (SDL2/GLFW) 윈도우 창 생성오늘은 SDL2 또는 GLFW를 사용하여 윈도우 창을 생성하는 방법을 학습합니다. SDL2는 멀티미디어 라이브러리로, 게임 개발에 널리 사용됩니다. GLFW는 OpenGL을 위한 경량의 윈도우 라이브러리입니다.1. SDL2를 사용하여 윈도우 창 생성SDL2를 사용하여 윈도우 창을 생성하고 기본적인 렌더링을 구현해 보겠습니다. 헤더 파일 작성include/GameEngine.h 파일에 다음 내용을 추가합니다.#ifndef GAMEENGINE_H#define GAMEENGINE_H#include class GameEngine {public: GameEngine(); ~GameEngine(); bool Initialize(const char* title, int width, in.. 2024. 8. 1.
[C++로 배우는 게임 엔진 개발] Day 8: 2D 그래픽스 기초 (SDL2) 2D 그래픽스 기초오늘은 SDL2를 사용하여 2D 그래픽스를 렌더링하는 방법을 학습하겠습니다. 스프라이트를 렌더링하고, 화면에 이미지를 그리는 기초를 배워보겠습니다.1. SDL2 이미지 로딩SDL2는 SDL_image 라이브러리를 사용하여 다양한 형식의 이미지를 로드할 수 있습니다. 먼저 SDL_image 라이브러리를 설치하고 프로젝트에 추가합니다. CMakeLists.txt 수정CMakeLists.txt 파일에 SDL_image 라이브러리를 추가합니다.cmake_minimum_required(VERSION 3.10)# 프로젝트 이름과 버전 설정project(GameEngine VERSION 1.0)# C++ 표준 설정set(CMAKE_CXX_STANDARD 17)set(CMAKE_CXX_STANDARD.. 2024. 8. 1.
[C++로 배우는 게임 엔진 개발] Day 9: 스프라이트 렌더링 스프라이트 렌더링오늘은 SDL2를 사용하여 스프라이트를 렌더링하고, 애니메이션을 구현하는 방법을 학습하겠습니다. 스프라이트는 게임에서 캐릭터나 객체를 표현하는 2D 이미지를 의미합니다. 여러 프레임으로 이루어진 스프라이트 시트를 사용하여 애니메이션을 구현할 수 있습니다.1. 스프라이트 시트 준비스프라이트 시트는 여러 프레임이 한 이미지 파일에 포함된 형태입니다. 예제에서는 가로로 배치된 스프라이트 시트를 사용합니다. 스프라이트 시트의 각 프레임은 동일한 크기여야 합니다.2. 헤더 파일 수정include/GameEngine.h 파일에 애니메이션을 위한 변수를 추가하고, 애니메이션 업데이트 함수를 선언합니다.#ifndef GAMEENGINE_H#define GAMEENGINE_H#include #includ.. 2024. 8. 1.
[C++로 배우는 게임 엔진 개발] Day 10: 애니메이션 시스템 구현 애니메이션 시스템 구현오늘은 SDL2를 사용하여 좀 더 복잡한 애니메이션 시스템을 구현하는 방법을 학습하겠습니다. 다양한 캐릭터의 움직임을 표현하는 방법을 배워보겠습니다.1. 애니메이션 시스템 개요애니메이션 시스템은 여러 프레임으로 이루어진 스프라이트 시트를 사용하여 캐릭터나 객체의 움직임을 표현합니다. 각 애니메이션은 여러 프레임으로 구성되며, 각 프레임은 일정 시간 동안 화면에 표시됩니다.2. 애니메이션 클래스 설계애니메이션을 관리하기 위해 Animation 클래스를 설계합니다. 이 클래스는 프레임 정보를 저장하고, 애니메이션을 업데이트하는 역할을 합니다. 헤더 파일 작성include/Animation.h 파일을 생성하고 다음과 같이 작성합니다.#ifndef ANIMATION_H#define ANIM.. 2024. 8. 1.
[C++로 배우는 게임 엔진 개발] Day 11: 타일맵 렌더링 타일맵 렌더링오늘은 SDL2를 사용하여 타일맵을 렌더링하는 방법을 학습하겠습니다. 타일맵은 게임 맵을 작은 타일들로 구성하여 효율적으로 렌더링하는 방법입니다. 이를 통해 큰 맵을 쉽게 관리하고 렌더링할 수 있습니다.1. 타일맵의 개요타일맵은 작은 타일들을 배열하여 게임 맵을 구성합니다. 각 타일은 일정한 크기의 사각형으로, 타일맵 배열의 각 요소는 타일의 종류를 나타냅니다.2. 타일맵 클래스 설계타일맵을 관리하기 위해 TileMap 클래스를 설계합니다. 이 클래스는 타일맵 배열을 저장하고, 타일맵을 렌더링하는 역할을 합니다. 헤더 파일 작성include/TileMap.h 파일을 생성하고 다음과 같이 작성합니다.#ifndef TILEMAP_H#define TILEMAP_H#include #include c.. 2024. 8. 1.
[C++로 배우는 게임 엔진 개발] Day 12: 간단한 물리 엔진 구현 (AABB 충돌) 간단한 물리 엔진 구현 (AABB 충돌)오늘은 SDL2를 사용하여 간단한 물리 엔진을 구현하고, AABB(축 정렬 경계 상자) 충돌 감지 방식을 사용하여 물리적인 상호작용을 처리하는 방법을 학습하겠습니다. AABB 충돌 감지는 간단하지만 효율적인 충돌 감지 방식입니다.1. AABB 충돌 감지의 개념AABB 충돌 감지는 사각형으로 된 객체가 충돌하는지 감지하는 방법입니다. 두 사각형의 위치와 크기를 비교하여 충돌 여부를 판단합니다.2. AABB 충돌 감지 함수 작성먼저, AABB 충돌 감지 함수를 작성하겠습니다. 헤더 파일 작성include/Physics.h 파일을 생성하고 다음과 같이 작성합니다.#ifndef PHYSICS_H#define PHYSICS_H#include bool CheckAABBColl.. 2024. 8. 1.
[C++로 배우는 게임 엔진 개발] Day 13: 사운드 시스템 기초 (SDL_mixer) 사운드 시스템 기초 (SDL_mixer)오늘은 SDL2와 SDL_mixer를 사용하여 사운드 시스템을 구현하고, 게임 내에서 효과음과 배경음을 재생하는 방법을 학습하겠습니다.1. SDL_mixer 설치 및 설정SDL_mixer는 SDL2용 사운드 라이브러리로, 다양한 오디오 포맷을 지원합니다. 먼저 SDL_mixer를 설치하고 프로젝트에 설정합니다. CMakeLists.txt 수정CMakeLists.txt 파일에 SDL_mixer 라이브러리를 추가합니다.cmake_minimum_required(VERSION 3.10)# 프로젝트 이름과 버전 설정project(GameEngine VERSION 1.0)# C++ 표준 설정set(CMAKE_CXX_STANDARD 17)set(CMAKE_CXX_STANDARD.. 2024. 8. 1.
반응형