infoMore than 5 years have passed since last update.
ゲームのタスク管理 Version 1
Last updated at Posted at 2015-05-06
今回について
- まず、タスクを作るために完成品だけを投稿はしません。
- 徐々に完成するためのノウハウを書いていきます。
- なので、今回はVersion 1を発表します。
タスク管理とは?
- 各ゲームオブジェクトを1つのタスクにまとめ、そこでUpdateやRenderなどをすること。
- コマンドパターンに近いかな。
- ゲーム制作するにあたっては必ずと言っていいほど、必要に技術です。
なんで、そんな管理法が必要なの?
- 簡単に言うと、ゲームオブジェクト分UpdateやRenderをゲーム管理する部分に書かなければならないから。
- 最初に登録してしまえば、あとはタスクでやらせるので、効率的に良い。
タスク管理の作り方
1. 基底クラス作成(HierarchyBehavior)
- まず、タスクでUpdateやRenderなど統一する処理をするゲームオブジェクトの基底クラスを作る。(親クラス)
- ここで注意点なのが、基底クラスに純粋仮想関数を作るかもしれないが、これは仮想関数のほうがよい。
- なぜなら、必ず、UpdateやRender等の統一する処理を書かないゲームオブジェクトもあるはずだからです。
2. 派生クラス作成(GameObject)
- ゲームオブジェクトに先ほど作成した基底クラスを継承する。
- 派生クラス(ゲームオブジェクト)に基底クラスにある仮想関数を使うものだけオーバーライドする。
- これでゲームオブジェクトの準備は完了!!
3. タスクになるHierarchyを作成。
- Hierarchyクラス(タスク)を作る。
- そこにHierarchyBehaviorの可変長配列を作る。
- HierarchyBehaviorに書いた仮想関数の関数をここのクラスに書く。
- なぜなら、1つの関数で可変長配列に入っているゲームオブジェクトを回すからです。
- 作った関数の中に可変長配列をfor文等を使って、すべて回す。
- これで一通り完成だ!
4. タスクの使い方。
- ゲーム管理部分にHierarchyの実態を作る。
- その実態にゲームオブジェクトを登録していく。
- そして、HierarchyのUpdateやRender等を書く。
- そうすれば、登録したゲームオブジェクトが実行されます。
終わりに
- これで一通り完成です。
- これは、最初に考えるタスク管理法だと思います。
- 今後は、もっと便利なタスク管理法を投稿します。
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme
What you can do with signing up