게임 개발/[D2D_Portfolio] DirectX2D 포트폴리오 작업일지

37. SkulItemUI 구현 완료 & Item 기초 작업

헛둘이 2023. 4. 29. 17:01

SkulItemUI 구현 완료

- 인벤토리를 열고 스컬에 마우스를 대면 나오는 Detail UI를 구현했다.

- 스킬에 대한 설명과 스킬 이미지, 스킬 이름 등을 표시해주어야 했기 때문에, Skul 클래스로부터 이 정보를 받아오도록 했다.

- Skill을 구성하는 요소를 정리하다 보니 생각보다 많다는 걸 느꼈는데, 이걸 파편적으로 관리하기보다는 구조체로 묶어서 관리하는 것이 더 수월하겠다는 생각이 들었다. (더욱이 지금과 같이 정보를 넘겨주어야 할 때는 더더욱 필요)

- 결국 SkillInfo에 담길 텍스쳐는 UI에 표시될 텍스쳐, 바닥에 떨어졌을 때 텍스쳐, 인벤토리에 있을 때 텍스쳐 총 3개가 필요하고, 스킬 설명, 스킬 이름, 쿨타임이 필요하므로 이 정보들을 관리하는 구조체를 만들었다.

- 최종 목적은 DetailInfo에 스킬 정보를 담는 것이므로, 스컬 정보를 넘겨줄 때 각각의 스킬에서 이 SkillInfo 구조체를 받아서 같이 넘겨줄 수 있도록 처리했다.

- 화면에 출력하는 것은 어려운 일이 아니므로 따로 기록하지 않음

 

Item 기초 작업

- Item 클래스를 어디서 관리해야 하는가가 고민이었다.

- 우선 원작에서 보면 Item은 하나씩만 존재하며, 특수한 경우를 제외하면 소유하고 있는 아이템은 다시 나오지 않는다

- 그래서 이 아이템을 관리하는 클래스를 만들고, 그 클래스에서 ItemKind enum 값을 통해 아이템을 받아오는 방법도 생각해봤는데, 내 욕심으로는 위에서 언급한 특수한 경우를 구현할 가능성도 있기 때문에 이 방법보다는 Factory 패턴으로 그냥 찍어내는 게 좋겠다는 생각이 들었다.

- 그래서 지금 몬스터를 찍어내는 방식과 비슷하게 아이템을 생성해서 반환할 수 있게 했다.

(그러므로 여기서 생성된 아이템은 다 독립된 주소를 가진다)

 

내일 할 일

- 아이템 리소스 작업

- 아이템 하나 구현