![]() |
MIR Engine
미래 지향 설계에 초점을 맞춘 자체 제작 게임 엔진
|
ECS 아키텍처에서 시스템들을 관리하고, 게임 월드 상태를 업데이트/렌더링하는 클래스 더 자세히 ...
#include <World.hpp>
Public 멤버 함수 | |
World ()=default | |
기본 생성자 | |
void | Update (ECS::Manager &manager, const float dt) |
매 프레임마다 호출되어 게임 상태를 갱신하는 메서드 | |
void | Render (ECS::Manager &manager, sf::RenderWindow &window) |
매 프레임 렌더링 단계에서 호출되어 그래픽을 그리는 메서드 | |
template<typename T > | |
void | AddSystem () |
새로운 시스템을 동적으로 추가하는 템플릿 메서드 | |
ECS 아키텍처에서 시스템들을 관리하고, 게임 월드 상태를 업데이트/렌더링하는 클래스
World 클래스는 ECSManager(엔티티와 컴포넌트 관리)와 여러 시스템(System)들을 연계. Update 메서드를 통해 물리, AI, 애니메이션 등 다양한 시스템 로직을 실행하고, Render 메서드를 통해 그래픽 출력과 관련된 시스템 호출. 또한 AddSystem 템플릿 메서드를 통해 런타임에 다양한 시스템을 동적으로 추가.
|
default |
기본 생성자
초기 상태에서는 어떤 시스템도 추가되지 않은 빈 상태.
|
inline |
새로운 시스템을 동적으로 추가하는 템플릿 메서드
T | 추가할 시스템 클래스 타입 (System 인터페이스를 상속해야 함) |
런타임에 시스템 인스턴스를 생성하고 systems 벡터에 보관. 이후 Update, Render 호출 시 해당 시스템도 함께 처리.
void MIR::World::Render | ( | ECS::Manager & | manager, |
sf::RenderWindow & | window ) |
매 프레임 렌더링 단계에서 호출되어 그래픽을 그리는 메서드
manager | 엔티티와 컴포넌트를 관리하는 ECS::Manager |
window | SFML의 렌더 윈도우 |
이 메서드는 등록된 모든 시스템 중 렌더링 관련 로직을 수행하는 시스템을 호출하여 화면에 엔티티 그래픽, UI 요소 등을 그림.
void MIR::World::Update | ( | ECS::Manager & | manager, |
const float | dt ) |
매 프레임마다 호출되어 게임 상태를 갱신하는 메서드
manager | 엔티티와 컴포넌트를 관리하는 ECS::Manager |
dt | 델타 타임(초 단위), 현재 프레임에서 지난 프레임까지의 시간 간격 |
이 메서드는 등록된 모든 시스템의 Update 로직을 호출하여 엔티티 상태를 변화시키거나, 물리 연산 및 AI 판단 등을 수행.