Я пытаюсь создать сетку плиток (для подземелья). Данная плитка может быть одним из нескольких типов: пол, стена, пустая ... или дверь. Оффер, я предполагаю, что данная плитка может иметь (еще не поняла) вероятность того, что это дверь 1,5%. и т. Д.)struct Door {
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, /*...*/ )
}
}
};
Это правильный способ сделать это? Объявите дополнительный объект в сетке объектов, то есть? Это не занимает больше памяти, чем это реально? «->» вообще требуется (это своего рода боль для печати неоднократно, поэтому я бы предпочел использовать колоны и периоды, если она все одинаково. Это также более интуитивно понятно для меня, выходя из VB и C#, как и я). < /Li>
Нужно ли мне делать что-то особенное в деструкторе плитки, чтобы убедиться, что любые дверные объекты также являются правильно уничтожены? Допустим, вместо того, чтобы быть статичными, плитки (в подземелье) использовали Malloc. Когда я освобождаю массив плиток в деструкторе Dungeon, это просто позаботится обо всем, включая все плитки и двери внутри него? Есть ли просто указатель ни на что? И, просто из любопытства, как бы я проверил это, из функций подземелья или даже из внешней функции?
Я пытаюсь создать сетку плиток (для подземелья). Данная плитка может быть одним из нескольких типов: пол, стена, пустая ... или дверь. Оффер, я предполагаю, что данная плитка может иметь (еще не поняла) вероятность того, что это дверь 1,5%. и т. Д.)struct Door { 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[i][j]->doorHere = std::make_unique('N', 4, /*...*/ ) } } };
Dungeon myDungeon;
void Main() {
//..... char something = myDungeon.tiles[i][j]->doorHere.facingDir; } < /code> Мои вопросы: < /p> [list] [*] Это правильный способ сделать это? Объявите дополнительный объект в сетке объектов, то есть? Это не занимает больше памяти, чем это реально? «->» вообще требуется (это своего рода боль для печати неоднократно, поэтому я бы предпочел использовать колоны и периоды, если она все одинаково. Это также более интуитивно понятно для меня, выходя из VB и C#, как и я). < /Li> Нужно ли мне делать что-то особенное в деструкторе плитки, чтобы убедиться, что любые дверные объекты также являются правильно уничтожены? Допустим, вместо того, чтобы быть статичными, плитки (в подземелье) использовали Malloc. Когда я освобождаю массив плиток в деструкторе Dungeon, это просто позаботится обо всем, включая все плитки и двери внутри него? Есть ли просто указатель ни на что? И, просто из любопытства, как бы я проверил это, из функций подземелья или даже из внешней функции? [/list]