chenzedong416 发表于 2021-2-25 17:54:37

QT如何保存和调用大量数据


const int map=
{
    {1,2,3,4,5},
    {1,2,3,4,5},
    {1,2,3,4,5},
    {1,2,3,4,5},   
   
};

如上代码,定义了一个二维数组,用来表示一个二维地图上的数据,在需要用到地图的时候直接载入这个地图数据就可以了。
我想做个游戏,这个游戏里有很多把武器,每个武器有名字,有编号,有属性,有很多物品,也有各种名字,是否可以售卖,最大叠加数量等等一系列const数据,我也想做一个类似的表方便查找和调用数据,请问该如何做呢?
我想用vector来做,又不知道如何初始化,用数据做,又不知道如何定义类型。
大概的样式是这样的
QVector<Goods> weapon=
{
   编号名称   攻击力   叠加数量
    "0","木剑",   100 ,    1,
   "1","晶石",   0,      100,
   
};

qmake123 发表于 2021-2-26 15:35:28

c语言就定义结构体类型啊,c++就写类

chenzedong416 发表于 2021-3-1 08:47:17

qmake123 发表于 2021-2-26 15:35
c语言就定义结构体类型啊,c++就写类

我用的是C++,定义了一个物品类,但是我想对这个物品类大批量赋值,比如
class Goods
{

public:
    explicit Goods(QString goodsname,const QString &pixpath);



    void init(const ITEM *);
    void setGoodsType(GOODSTYPE type);
    void addNum(unsigned int num);
    void decNum(unsigned int num);
    void addDescript(const QString goodsdescript);
    void setUsable(bool goodsusable);
    void setSale(bool goodssale);
    void setItemChance(float rate);

    QString goodsName;//名称
    GOODSTYPE   goodsType;//种类
    unsigned int goodsNum;//数量
    QPixmap goodsPix;//图片
    QString goodsDescript;//描述
    bool goodsUsable;//可否使用
    bool goodsSale;//可否出售
    int level;//等级
    double itemChance;//爆率
signals:

};
如上的物品类,现在我要将游戏中所有的物品添加到一个单独的文件中,如果定义的是结构体

typedef struct {
    int         item_id;
    QString   item_name;
    Goods::GOODSTYPE   item_type;//种类
    unsigned int item_maxnum;//最大叠加数量
    QPixmap item_pix;//图片
    QString itme_descript;//描述
    bool item_usable;//可否使用
    bool item_usale;//可否出售
    int item_level;//等级
    double item_chance;//爆率

} Goods;
那么可以直接初始化
const Goods weapon[]=
{
//编号名称   种类             叠加数量
    {0, "木剑",Goods::EQUIPMENT,1....},
    {1, "晶石",Goods::EQUIPMENT,1...},
...
};
但是如果用类,该如何像结构体这样大量初始化呢?
页: [1]
查看完整版本: QT如何保存和调用大量数据