所以我创建了一个简单的游戏地图,初始化如下:
char map[MAP_SIZE][MAP_SIZE];
现在,正如你所看到的,现在只是char。问题是,我希望地图代替不同类型的对象。这是我到目前为止所做的,但我想看看是否有更有效的方式(可能存在)。
class Treasure{};
class Chest{};
class Enemy{};
class Grunt : public Enemy{};
class Lieutenant : public Enemy{};
class Boss : public Enemy{};
class Final_Boss : public Enemy{};
class Secret_Room{};
class Map_Level{};
struct Entity
{
char display_char; //Simple character that is displayed on the the map
Treasure *t;
Chest *c;
Grunt *g;
Lieutenant *l;
Boss *b;
Final_Boss *f;
Secret_Room *s;
Map_Level *u;
Map_Level *d;
};
Entity map[MAP_SIZE][MAP_SIZE];
我考虑过只检查display_char并根据它是什么,只是删除我不需要的对象指针,但这似乎是很多不必要的工作。我希望这个问题足够清楚,并希望得到任何帮助,找出最佳方法。
答案 0 :(得分:0)
假设每个map
条目只需要一个敌人,你可以只拥有Enemy *
,而不是拥有Grunt, Lieutenant
的整个列表等。