0

Ogre3 を使用して、敵のコピーを自動的に作成し、それらを世界にドロップする Spawner を構築しようとしています。これに加えて、エンティティがスポーンされたときに、エンティティが世界にドロップされるとすぐにその動作に関与するように、動作関数を保存したいと考えています。私はこれができるかどうか疑問に思っていました。次のような署名で関数ポインターを再割り当てするという考えを楽しませていました。

void setBehavior(void (*振る舞い)(敵))

そして、動作をどこかに保存します。これを達成する方法はありますか?

4

1 に答える 1

0

「戦略」設計パターンを読んでください。

実装上の関数ポインタで十分かもしれませんが、より一般的なのは、クラス階層にさまざまな戦略を実装させ、そのインスタンスを渡すことですunique_ptr<IStrategy>std::function検討する価値もあります。

于 2013-06-07T11:20:23.977 に答える