SFML の Sprite オブジェクトの単純な 2D 配列またはベクトルを作成しようとしています。私はさまざまな方法を試しましたが、常にエラーが発生するか、空のベクトルになります。
私が試してみました
// first x
for ( int c = 0; c < w ; ++c)
{
vector<unique_ptr<sf::Sprite>> col;
map.push_back(std::move(col));
// then y
for ( int r = 0; r < h ; ++r) {
map[c].push_back(unique_ptr<sf::Sprite>(new sf::Sprite()));
}
}
と
unique_ptr<sf::Sprite[0][0]> map;
...
map.reset(unique_ptr<sf::Sprite[0][0]>(new sf::Sprite[w][h]));
全体として、私は 2 次元のスマート ポインター オブジェクト配列の作成に成功していないだけで、誰かが助けてくれるかどうか疑問に思っていました。十分な詳細が含まれていない場合は申し訳ありませんが、これはスタックオーバーフローの最初の投稿なので、優しくしてください:)
編集:これについてもう少し詳しく説明させてください。申し訳ありません。したがって、基本的にシングルトンであるファクトリ型クラスでこの 2 次元配列を作成しています。したがって、この2次元配列が作成されてスタックを離れた後も永続化する必要があります。