Так я создаю простую игру карту инициализирован следующим образом:C++ массив с несколькими объектами
char map[MAP_SIZE][MAP_SIZE];
Теперь, как вы можете видеть, сейчас это просто символ. Проблема в том, что я хочу, чтобы на карте были разные объекты. Это то, что я сделал до сих пор, но я хотел посмотреть, был ли более эффективный способ (который, вероятно, есть).
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 и в зависимости от того, что это, просто удалив указатели объекта не нужно, но это, кажется, как много ненужной работы. Я надеюсь, что этот вопрос достаточно ясен и будет признателен за любую помощь в выяснении наилучшего способа сделать это.
Вы можете иметь все, что наследовать от базового класса 'Entity' и просто' Карта сущности [] [] ' – yizzlez
' boost :: variant'? – Borgleader
@awesomeyi: Ну, это должны быть указатели Entity, или вы будете нарезать. –