본문 바로가기
게임 개발/[D2D_Portfolio] DirectX2D 포트폴리오 작업일지

38. ItemInfoUI 구현 & 마검 아이템 구현 및 장착 시 이펙트 구현

by 헛둘이 2023. 5. 1.

ItemInfoUI 구현

- 이는 이전에 구현했던 SkulInfoUI와 비슷한 구석이 많은데, 결국 아이템도 UI에 보여질 아이템의 이미지, 이름, 설명을 기재해야 하므로 이런 정보들을 한번에 관리할 수 있도록 ItemInfo라는 구조체를 따로 만들었다.
- 이렇게 구현하고 나니 생기는 장점은, DetailInfo (UI가 선택되었을 때 우측에 뜨는 설명란을 구성하는 구조체)에 
SkulInfo와 ItemInfo를 멤버로 두기 때문에 SkulInfo -> DetailInfo에 값을 전달할 필요가 없어져서 코드가 훨씬 간결해진다는 것이다.
- 그리고 SkulInfo에 멤버를 추가하면 DetailInfo에 자동으로 추가되는 이점이 있다.
(다만 이 경우 멤버를 삭제할 때 관리 포인트가 늘어날 수 있는데, 이 경우 삭제된 부분에서 컴파일러가 캐치해서 에러를 발생시키기 때문에 문제되지 않을 것이다.) 
- 이를 통해 ItemInfo를 파라미터 단위로 DetailInfo로 넘겨받아 그 값들(텍스쳐나 스트링)을 화면에 적절히 뿌려주는 작업을 진행
 

마검 아이템 구현 및 장착 시 이펙트 구현

- 마검 아이템의 경우 공격 시, 대쉬 시 특정 이벤트를 발생시킨다
- 처음에 생각한 것은 "마검 아이템의 Update에서 현재 플레이어의 State를 체크하고 AttackState라면 특정 액션을 취한다" 였으나, 공격이 적용되는 프레임에 정확히 마검의 Update에서 캐치해서 ~~한다 라는게 쉽지 않았다.
- 그래서 생각을 바꿔서 "AttackState의 공격하는 시점에 플레이어가 가진 Item들의 가상함수를 돌려서 구현된 가상함수를 실행시키는 방법으로 액션을 취한다"  로 생각을 바꿨고, 공격이 나갈 때 마검의 검기가 나가도록 구현하였다.
- 이를 응용해서 '대쉬 시 특정 이벤트 발생'도 무난히 처리했는데, 플레이어가 대쉬할 때 DashState의 할당된 시간 1/4마다 잔상을 남기는데, 이 시점을 이용해서 마검의 대쉬 이벤트를 처리했고 생각했던 것보다 성공적이었다.
 

내일 할 일

- 정수 구현 (라이위즐)
- 상점 초기 세팅
 

댓글