[내용 정리] 2. 프로젝트 구조 - Manager들

2025. 5. 29. 13:01·포트폴리오/Castlevania: Aria of Sorrow 모작

개요

Managers

1. SceneManager : 씬(Unity의 그 씬, Unreal의 레벨)을 관리해주는 클래스 주 동작은 다음과 같다.

  1. CScene 클래스 타입으로 현재 씬과 다음에 불러올 씬을 관리해 준다. 씬 전환 기능 동작 시 Input 콜백 초기화가 함께 동작한다.
    1. Init(), Update(), PostUpdate(), Collision(), Render()로 현재 씬을 관리한다.
    2. 레벨 전환(ChangeScene()) 시 기존 씬을 제거하고 Input 매니저의 콜백 초기화와 씬 교체를 수행한다.
bool CSceneManager::ChangeScene()
{
    if (m_NextScene)
    {
        // 기존 장면을 제거한다.
        SAFE_DELETE(m_Scene);

        CInput::GetInst()->ClearCallback();

        // 생성되어 있는 다음 장면을 기존 장면으로 지정한다.
        m_Scene = m_NextScene;

        // 변수를 초기화한다.
        m_NextScene = nullptr;

        return true;
    }

    return false;
}

2. ResourceManager

  1. FMOD 관련 클래스들
    1. FMOD::System*
    2. ChannelGroup*
    3. std::unordered_map<std::string, FMOD::ChannelGroup*>
    4. std::unordered_map<std::string, CSharedPtr<CSound>>
  2. CTexture 클래스들, map으로 관리
    1. std::unordered_map<std::string, CSharedPtr<CTexture>>
  3. CAnimationSequence 클래스들, map으로 관리
    1. std::unordered_map<std::string, CSharedPtr <CAnimationsequence>>
  4. Font
    1. m_FontLoadList(폰트 목록)
      1. std::list<std::wstring>
    2. m_mapFont(실제 폰트 자료들)
      1. std::unordered_map<std::string, CSharedPtr<CFont>>
  5. PathManager
    1. 유니코드를 멀티바이트로 변환하는 기능
    2. 솔루션 루트 디렉토리에서부터 경로를 얻어와 문자열과 경로를 결합하여 보유
  6. CollisionManager
    1. 충돌 프로파일 생성 및 관리, 프로파일간 충돌 여부 설정(실제 충돌 검사는 다른 클래스에서 수행)
  7. Input
    1. 마우스와 키보드 입력 관리, 키보드 입력의 경우 GetAsyncKeyState를 이용하여 상태 관리
  8. GameManager
    1. 모든 매니저 초기화 및 DC 생성, 더블 버퍼용 백 버퍼 생성, 렌더 관장
    2. 초기화 후 무한 루프가 되는 로직 관리
      1. 타이머 업데이트
      2. 리소스 업데이트
      3. 입력 업데이트
      4. 씬 매니저의 업데이트, 포스트 업데이트, 충돌 업데이트, 렌더 수행

'포트폴리오 > Castlevania: Aria of Sorrow 모작' 카테고리의 다른 글

[내용 정리] 1. 프로젝트 개요  (0) 2025.05.28
211015~18 모작기록-5, 오브젝트의 계단 이동  (2) 2021.10.19
211015 모작기록-4 Line 클래스 기반 충돌체 생성  (0) 2021.10.16
211012 모작기록-3, 맵에 사용될 Line 클래스 작업  (0) 2021.10.13
211010~11 모작기록-2, 끄적끄적  (0) 2021.10.11
'포트폴리오/Castlevania: Aria of Sorrow 모작' 카테고리의 다른 글
  • [내용 정리] 1. 프로젝트 개요
  • 211015~18 모작기록-5, 오브젝트의 계단 이동
  • 211015 모작기록-4 Line 클래스 기반 충돌체 생성
  • 211012 모작기록-3, 맵에 사용될 Line 클래스 작업
DevJoo1120
DevJoo1120
  • DevJoo1120
    Jin's Programming
    DevJoo1120
  • 전체
    오늘
    어제
    • 분류 전체보기 (142)
      • 포트폴리오 (7)
        • Castlevania: Aria of Sorrow.. (7)
        • [UE5] KILL Everything (0)
      • C++ (0)
      • 라이브러리 (1)
      • 다이렉트X11 (0)
      • Unreal Engine (11)
        • Unreal Document (1)
        • 이것 저것 (8)
        • UI (1)
      • 자료구조 및 알고리즘 (0)
      • 책 정리 (3)
        • 코딩 테스트 합격자 되기 C++ 편 (10)
      • 코딩 테스트 (32)
        • 프로그래머스 (32)
      • 스파르타 코딩 언리얼 1기 (9)
        • 특강 (0)
        • C++와 Unreal Engine으로 3D .. (2)
      • TIL(Today I Learned) (63)
      • 영어 공부 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Til
    Study
    반복문
    문자열
    코딩 테스트 합격자 되기 c++ 편
    이중 반복문
    정렬
    코딩테스트
    스파르타 코딩 클럽
    팀 프로젝트
    WINAPI
    코딩 테스트
    정리
    C++
    프로그래머스
    책 정리
    과제
    Unreal Engine 5
    배열
    map
  • hELLO· Designed By정상우.v4.10.5
DevJoo1120
[내용 정리] 2. 프로젝트 구조 - Manager들
상단으로

티스토리툴바