응애맘마조
230907 강의 본문
팀 프로젝트를 만들면서 인벤토리에 관련된 얘기들이 많이 나와서 이에 대한 강의를 했습니다. 3일 정도 걸려서 완성된다고 해서 오늘은 완성되지 못했습니다.
#pragma once
class Item
{
friend class Inven;
int type; //타입
string name; //이름
int num; //갯수
string file; //연결될 텍스처 or xml
};
class Weapon : public Item
{
public:
friend class Inven;
int att; //공격력
};
//그려줄 객체 , 내부에 아이템 데이터를 관리
class Inven : public UI
{
//txt 에서 읽어온 아이템 리스트
static Item** itemList;
static int itemListSize;
//이중배열로 만들 아이템
Item** itemSlot;
public:
static void CreateStaticMember();
static void DeleteStaticMember();
};
#include "stdafx.h"
Item** Inven::itemList = nullptr;
int Inven::itemListSize = 0;
void Inven::CreateStaticMember()
{
ifstream fin;
fin.open("../Contents/aaa111.db", ios::in);
fin >> itemListSize;
itemList = new Item*[itemListSize];
for (int i = 0; i < itemListSize; i++)
{
int type;
fin >> type;
if (type == 0)
{
itemList[i] = new Item();
fin >> itemList[i]->name;
fin >> itemList[i]->file;
}
else if (type == 1)
{
Weapon* weapon = new Weapon();
fin >> weapon->name;
fin >> weapon->file;
fin >> weapon->att;
itemList[i] = weapon;
}
}
}
void Inven::DeleteStaticMember()
{
SafeDeleteArray(itemList);
}
이중배열로 만드는 것이 편하지만 정렬이 어렵다는 장단점이 존재합니다. 메모장 같은 파일로 불러올 수 있고 강의 초기에 사람 찾기를 했던 것처럼 띄어쓰기를 사용해서 값을 구분하는 방식으로 했습니다.
읽어주셔서 감사합니다.
Comments