Search
Duplicate

LV12 Resource, Resources

숙제

게임에서 사용될 Resource들을 Resources를 통해서 전부 로드 해보세요!
리소스란?
게임 제작 및 레벨 디자인에서의 에셋[편집] 위에서와 마찬가지로 개발에 필요한 각종 참고 자료나 어느정도 프로토타입 이상 완성된 작업물[1] 등을 칭하나 경우에 따라 (기술이나 잠재력을 가진) 인재 등을 칭하기도 한다. [1] 일부에선 리소스(자원)라고도 부른다.
예를들어 캐릭터 이미지,  공격 사운드 등등이 에셋이 된다 이러한 에셋들을 리소스라고도 부르는데
이런 리소스들을 로드할수 있도록 도와주는 클래스를 설계하여야 한다.
또한 리소스들은 한번 로드하면 재로드 할필요 없이 같은 리소스를 사용하는 객체라면 같이 사용하면 된다.
그래서 우리 리소스를 관리하는 클래스 Resources는 std::map을 이용해서 관리할 것 이다
파일의 경로를 더 쉽게 가져와서 사용 할수 있도록 도와주는 클래스이다. 아직 구현은 덜 되어있지만 앞으로 경로관련한 처리는 이쪽 클래스를 이용해 처리 할 것이다.
리소스를 찾거나 로드하거나 여러가지 리소스들을 관리 해주는 클래스이다. 사운드, 이미지 등등 다양한 리소스 유형을 로드할수 있도록 template을 이용해서 만들어 주었다. 템플릿을 쓰지 않고 일일이 만들어주는 경우도 있지만 필자는 확장가능성을 고려해서 템플릿을 사용하도록 하겠다.
std::map에 key값으로 wstring으로 관리를하고 해당 데이터는 Resource*로 부모형태로 들고 있다.
리소스클래스는 Load함수를 순수가상함수로 선언하여 항시 이를 상속받은 아이들은 구현을 해주어야한다.
이제 마지막으로 Player의 이미지를 해당 리소스 클래스를 이용하여 로드해서 사용하도록 바꾸어 보자.
사용 예시는 다음과 같다.