C++ 입력 시스템 구현: Pressed / Held / Released 상태 관리하기
📚 입력 시스템 시리즈 1편: GetAsyncKeyState로 키 입력 처리 2편: Pressed / Held / Released 상태 관리 3편: 입력 시스템을 엔진 구조로 확장 🚀 들어가며 이전 글에서는 GetAsyncKeyState를 이용해 입력 상태 관리하는 방법을 살펴봤습니다.…
Series Archive
게임 엔진 프레임워크의 구조와 설계 방법, 렌더링, 메모리 관리 등 내부 동작 원리를 중심으로 다루는 카테고리입니다.
📚 입력 시스템 시리즈 1편: GetAsyncKeyState로 키 입력 처리 2편: Pressed / Held / Released 상태 관리 3편: 입력 시스템을 엔진 구조로 확장 🚀 들어가며 이전 글에서는 GetAsyncKeyState를 이용해 입력 상태 관리하는 방법을 살펴봤습니다.…
📚 입력 시스템 시리즈 1편: GetAsyncKeyState로 키 입력 처리 2편: Pressed / Held / Released 상태 관리 3편: 입력 시스템을 엔진 구조로 확장 🚀 들어가며 게임을 만들다 보면 가장 먼저 필요한 기능 중 하나가…
C++를 공부하다 보면 함수 포인터(Function Pointer), std::function, Delegate 같은 개념들을 접하게 됩니다. 그런데 처음에는 이런 생각이 들기도 합니다. 함수를 왜 변수처럼 전달할까? 왜 콜백(Callback) 구조가 필요한 걸까? 그리고 게임 엔진을 조금 더 깊게 보다…
델리게이트 시리즈 1편: 함수 포인터 2편: std::function 3편: Delegate 구현 4편: 엔진 스타일 Delegate 들어가며 이전 글에서는 std::function을 기반으로 멀티캐스트 델리게이트 구조를 직접 구현해봤습니다. class Delegate { public: void Add(std::function<void()> func) { functions.push_back(func);…
델리게이트 시리즈 1편: 함수 포인터 2편: std::function 3편: Delegate 구현 4편: 엔진 스타일 Delegate 들어가며 이전 글에서는 std::function과 lambda를 활용해서 유연한 콜백 구조를 만드는 방법을 살펴봤습니다. std::function<void()> func = []() { std::cout <<…
델리게이트 시리즈 1편: 함수 포인터 2편: std::function 3편: Delegate 구현 4편: 엔진 스타일 Delegate 들어가며 이전 글에서는 함수 포인터를 이용해 함수를 나중에 실행하는 콜백 구조에 대해 살펴봤습니다. void Execute(void (*callback)()) { callback(); }…
델리게이트 시리즈 1편: 함수 포인터 2편: std::function 3편: Delegate 구현 4편: 엔진 스타일 Delegate 들어가며 언리얼 엔진의 델리게이트, 유니티의 이벤트 시스템의 기반이 되는 개념인 함수 포인터에 대해 살펴봅니다. 게임에서 어떤 키를 눌렀을…
게임을 만들다 보면 자연스럽게 “게임 루프(Game Loop)”라는 구조를 접하게 됩니다. 캐릭터가 움직이고, 입력이 처리되고, 화면이 계속 갱신되는 이유도 결국 게임 루프가 계속 반복되기 때문입니다. 그런데 처음에는 이런 의문이 생기기도 합니다. 왜 게임은 while 문…
🚀 들어가며 이전 글에서는 C++로 게임 루프를 직접 구현하면서👉 고정 프레임(Fixed Timestep) 구조를 살펴봤습니다. 이번 글에서는 한 단계 더 나아가👉 게임 루프의 다양한 방식들을 비교해보겠습니다. 🎯 이번 글의 목표 게임 루프에는 여러 방식이 존재합니다.…
🚀 들어가며 이전 글에서는 게임 루프의 기본 개념과deltaTime이 왜 필요한지 살펴봤습니다. 👉 게임은 반복되는 루프를 통해 계속 실행된다 이번 글에서는 한 단계 더 나아가👉 C++로 실제 동작하는 게임 루프를 구현해보겠습니다. 🎯 이번 글의 목표…