質問: 現在C++でゲームを作成しています。(ジャンルはRPGです) ゲーム中でのフラグの管理についての質問です。 ``` class Flag{ bool stage1_clear;//ステージ1をクリアしたか bool talk_murabito;//村人に話しかけたか . . . } ``` このように一つのクラスにすべてのフラグを管理させる方法を考えていますが、一般的にはどのようにして管理するべきなのでしょうか? より良い管理方法があれば教えていただきたいです。 よろしくお願いします。
回答: まあ別にそれでも問題ないけど、std::bitsetとenum使うほうが省メモリーにはなる。 名前衝突防止のためにstructでenumをくるまないといけないのがだるいけど。 ``` #include struct flag{ enum type : std::size_t { stage1_clear,//ステージ1をクリアしたか talk_murabito,//村人に話しかけたか size }; }; std::bitset flags; //使い方 flags[flag::stage1_clear] ``` 追記 グローバル変数が害悪なように、なんでも入っているクラスは害悪です。一つのクラスがあちこちで変更されないように設計しましょう。ただ、この手のフラグはそこかしこで参照することが多いので、まとめてしまっても構わないと思います。C++だと関数間通信、クラス間通信はほぼできないですし。