char facingDir;
int doorState;
// bunch of other stuff
}
class Tile {
public:
int x;
int y;
char[1] tileType;
Door* doorHere;
// bunch of other stuff
};
class Dungeon {
public:
Tile[200][200] tiles;
void drawDungeon()
{
//do a bunch of maze-building logic, setting the tileType of each tile
//while looping through the tiles using i, j as integer iterators:
if (tileType == 'D')
{
tiles[j]->doorHere = std::make_unique('N', 4, /*...*/ )
}
}
};
Dungeon myDungeon;
void Main()
{
//.....
char something = myDungeon.tiles[j]->doorHere.facingDir;
}
< /code>
Мои вопросы: < /p>
- Это правильный способ сделать это? Объявите дополнительный объект в сетке объектов, то есть? Это не занимает больше памяти, чем это реально? «->» вообще требуется (это своего рода боль для печати неоднократно, поэтому я бы предпочел использовать колоны и периоды, если она все одинаково. Это также более интуитивно понятно для меня, выходя из VB и C#, как и я). < /Li>
Нужно ли мне делать что-то особенное в деструкторе плитки, чтобы убедиться, что любые дверные объекты также являются правильно уничтожены? Допустим, вместо того, чтобы быть статичными, плитки (в подземелье) использовали Malloc. Когда я освобождаю массив плиток в деструкторе Dungeon, это просто позаботится обо всем, включая все плитки и двери внутри него? Есть ли просто указатель ни на что? И, просто из любопытства, как бы я проверил это, из функций подземелья или даже из внешней функции?
Подробнее здесь: https://stackoverflow.com/questions/797 ... e-an-array