找回密码
 立即注册
收起左侧

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

2
回复
10861
查看
[复制链接]
累计签到:2 天
连续签到:1 天
来源: 2021-2-25 17:54:37 显示全部楼层 |阅读模式
5Qter豆

const int map[4][5]=
{
{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,

};



回复

使用道具 举报

累计签到:18 天
连续签到:1 天
2021-2-26 15:35:28 显示全部楼层
c语言就定义结构体类型啊,c++就写类
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2021-3-1 08:47:17 显示全部楼层
qmake123 发表于 2021-2-26 15:35
c语言就定义结构体类型啊,c++就写类

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

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



  5.     void init(const ITEM *);
  6.     void setGoodsType(GOODSTYPE type);
  7.     void addNum(unsigned int num);
  8.     void decNum(unsigned int num);
  9.     void addDescript(const QString goodsdescript);
  10.     void setUsable(bool goodsusable);
  11.     void setSale(bool goodssale);
  12.     void setItemChance(float rate);

  13.     QString goodsName;//名称
  14.     GOODSTYPE   goodsType;//种类
  15.     unsigned int goodsNum;//数量
  16.     QPixmap goodsPix;//图片
  17.     QString goodsDescript;//描述
  18.     bool goodsUsable;//可否使用
  19.     bool goodsSale;//可否出售
  20.     int level;//等级
  21.     double itemChance;//爆率
  22. signals:

  23. };
复制代码

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

  1. typedef struct {
  2.     int         item_id;
  3.     QString     item_name;
  4.     Goods::GOODSTYPE   item_type;//种类
  5.     unsigned int item_maxnum;//最大叠加数量
  6.     QPixmap item_pix;//图片
  7.     QString itme_descript;//描述
  8.     bool item_usable;//可否使用
  9.     bool item_usale;//可否出售
  10.     int item_level;//等级
  11.     double item_chance;//爆率

  12. } Goods;
复制代码

那么可以直接初始化
const Goods weapon[]=
{
  //编号  名称   种类             叠加数量
    {0, "木剑",Goods::EQUIPMENT,1....},
    {1, "晶石",Goods::EQUIPMENT,1...},
...
};
但是如果用类,该如何像结构体这样大量初始化呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了