반응형
앞서 공부하고 정리한 내용은 무료 배포된 유튜브 "얌얌코딩"님의 강의를 시청한 후임을 밝힙니다.
얌얌코딩 (게임 개발)
어려운 게임 개발을 쉽게 배우는 방법!
www.youtube.com
게임 내 리소스 처리
- 게임 내 리소스란 게임에서 사용되는 데이터들의 종류를 의미한다.
- 예를 들어 이미지, 사운드 같은 것들이 있고,
- 플레이어가 3스테이지를 클리어하고 게임을 껐는데 다시 1스테이지부터 시작하는 것은 옳지 않다.
- 이러한 정보들을 HDD에서 저장하거나 클라우드에 올려 저장을 해둔다.
- 이 모든 것들을 필자는 리소스라고 부른다.
순수가상함수 처리
Resource();
virtual ~Resource(); // 자식의 소멸자에 virtual 넣어야 자식의 메모리가 삭제되어 leak 이 안발생함
virtual HRESULT Load(const std::wstring& path) = 0; // 순수가상함수 : 실제 메모리에 할당이 불가능해지는 문법
- 리소스는 우선 Entity라고 하는 필자의 코드 속 디버깅을 담당하는 객체를 상속받게 하였다.
- 그렇기 때문에, 자식의 소멸자에 virtual을 넣어야 자식의 메모리가 남아있지 않아 메모리 릭을 막을 수 있다.
- 아래의 Load 함수를 보면
- 애초에 우리는 class Texture : public Resource
- 이런 식으로 상속받아 리소스를 사용할 것이기 때문에. 리소스 객체 자체를 코드에서 불러올 일을 없게 만들 것이다.
- 그러기 위해선, 뒤에서 = 0; (C++) 을 붙여서 순수 가상 함수로 선언한다.
- 실제 메모리에 할당이 불가능하게 만들어 코드 작성을 막는다.
- 순수 가상 함수가 하나라도 들어간 class는 추상 class라고 부른다.
반응형
'게임 엔진 개발' 카테고리의 다른 글
[게임 엔진 개발] - SetColorKey()를 통한 특정 RGB값 지우기 (0) | 2024.07.11 |
---|---|
[게임 엔진 개발] - PNG 파일로 애니메이션 구현 [C/C++] [GDI+] (0) | 2024.07.10 |
[게임 엔진 개발] - GDI PLUS 사용하기 / 초기화 (2) | 2024.07.02 |
[게임 엔진 개발] - 컴포넌트 구조 (0) | 2024.07.02 |
[게임 엔진 개발] - 더블버퍼링 기법 (화면 그리기) (1) | 2024.07.01 |