我正在尝试为我使用 DirectX 在 C++ 中创建的小型游戏定义基本项目的好方法。现在结构看起来像:
struct itemdef {
string name;
ID3DXMesh* mesh;
vector<IDirect3DTexture9*> textures;
vector<short> abilities;
};
我遇到的问题是我本质上想要制作这些基本属性的数组,而不为纹理或能力创建上限。
基本上想象它有另一个“itemdef”数组
vector<itemdef> itemDefs;
然后想要将项目添加到该数组中,无论是硬编码还是从文件中:
itemDefs.push_back(NewItem("Wall", Assets.GetMesh(Mesh_Wall), ???, ???));
基本上,我不知道如何将多个单个项目放入向量数组的参数列表中。第二个问题是需要在一组参数中创建两个列表。
所以我的问题是:应该用什么来代替“???” 上述声明中的字段?或者,如果做不到这一点,我应该使用什么更好的方法来存储这些基本定义?
(为了清楚起见:纹理指针的获取方式与上面的网格几乎相同,“能力”只是短整数。虽然应该注意,对于这些定义,网格和纹理都可以用它们的枚举代替,而不是指针)