我目前正在研究 Roguelike,其中我有多个不同的事件队列(以向量的形式),它们处理多个不同的事件类别。或者更确切地说,不同的游戏对象有自己的私有事件队列。
在地图图块数据中,我有一个特殊的触发器结构,当玩家(或其他任何东西)进入图块时会激活它。此图块结构提供用于生成事件标志的数据,然后需要将其放置到适当的事件队列中。
瓦片结构如下:
struct tile{
int t_type;
trigger t_dgram;
vector<actor*> occupied;
vector<item*> loot;
public:
void trigger_tile(int ns, int we, );
};
触发器结构本身可以保存用于确定哪个队列是合适队列的信息,但是为地图中的每个图块保存指向所有可能事件队列的指针是不可行的,特别是当我让地图动态生成无限地图的地形时.
所以问题是双重的:在调用函数时将向量转换为 void 指针是否是个好主意:
void tile :: trigger_tile(int ns, int we, void *queue_ob);
对象本身将tile
能够确定正确的队列向量类型并使用trigger t_dgram
成员变量取消引用 void 指针,但这是个好主意吗?这有什么我不知道的危险吗?
您个人如何建议我达到类似的效果?
感谢您的时间。