프로그래밍 공부
작성일
2024. 5. 12. 17:19
작성자
WDmil
728x90

 

 

https://github.com/ChoinCola/DX3D_2310

 

주요기능.

 

각 아이템 위에 마우스를 올리면 HUD가 출력됩니다.

 

아이템마다 소유권을 지정해서. 플레이어 소유가 아닌 객체는 플레이어 소유의 인벤토리 칸 안에 들어가지 못합니다.

 

소유권이 없는 객체는. 소유권이 없는 인벤토리 칸 안에만 이동할 수 있습니다.

 

상인이 구매한 아이템은 상인의 인벤토리 칸 안으로 이동합니다.

 

물론 판매한 아이템을 다시 구매할 수도 있습니다.

 

각 객체중 검 객체와 동전 객체를 추가하였습니다.

 

검 객체는 인터넷에서 받았고, 동전 객체는 직접 만들어서 사용하였습니다.

 

모든 인벤토리 객체는 Button으로 이루어져있으며, 마우스는 독자적인 한칸짜리 인벤토리 칸을 가집니다.

 

Button형 인벤토리 객체를 마우스로 클릭하면. Singleton형태의 마우스 Bag안에 해당 객체가 자신의 아이템은 Push해줍니다.

 

중앙의 Trade버튼은 마우스를 위로 올리면. 스스로 회전합니다.

 

TradeButton은 Button객체를 사용하여 제작하였습니다. 누를시 상점UI에서 Trade연산이 이루어집니다.

상인의 인벤토리 칸 안에 동전이 없으면 연산이 이루어지지 않게 만들 수 있으나, 디버깅시 에는 불필요할꺼같아.

그러한 기능은 넣어놓지 않았습니다. 그렇기 때문에. 동전만 넣어놓고 Trade시. 상인의 인벤토리에서 동전이 늘어납니다.

 

상점칸에서 자기자신이 넣어야하는 금액이 표시됩니다.

표시된 금액이 0원 이상이 될경우, 거래가 가능합니다.

 

 

private:
	UINT count = 0; // InvenBlock에 들어있는 블록의 개수
	Vector3 mainPos; // InvenBlock의 위치
	Block* block = nullptr; // InvenBlock에 들어있는 블록의 포인터
	Quad* hashud = nullptr;
	Quad* ShowDetails = nullptr;

	bool hasPlayer = true;
	bool canInput = true;
	bool canPop = true;
};
 

인벤토리 객체가 가져야할 데이터들입니다.

 

count로 블록개수, mainPos는 처음에 설정했던 자기자신의 pos를 가집니다.

 

block은 현재 가지고있는 Block객체를 가리킵니다.

Quad는, 현재 소유권이 어디에있는지 표시합니다. 소유권이 있다면 파란색, 없다면 붉은색으로 표시합니다.

 

ShowDetails는, 마우스 Object가 해당 객체 위에 존재할경우, 표시되는 자세히보기 창 입니다.

 

나머지는 bool형으로 관리하는 순서대로,

소유권 확인

플레이어가 넣을 수 있는지 확인

플레이어가 뺄 수 있는지 확인

입니다.

 

728x90

'작업사항 정리 > DIrectX3D' 카테고리의 다른 글

Animation  (0) 2024.05.13
DirectX3D 작업물 몰아넣은 Git  (0) 2024.05.13
Collision & 회전  (0) 2024.05.12
인스턴싱 & 무한  (0) 2024.05.12
간단 PacMan  (0) 2024.05.12