掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ゲームにおける擬似マルチタスクシステムについて (ID:7002)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
現在ゲーム製作のための擬似(マルチ)タスクシステム(クラス)を作っています。 そこで質問なのですが、 1.キャラクタを動かす場合、基本的に 各キャラクタのタスクを生成→キャラクタ移動タスク(座標の移動)→ →当たり判定タスク→描画タスク という流れになると思うのですが、 当たり判定タスク・描画タスクで、 各キャラクタの座標をどのように取得すればよいか悩んでいます。 座標は各タスクのワークエリアにもっています。 今、思いつくのは、 1)当たり判定クラス・描画クラスを別に作って、 各キャラクタの座標を登録する形式にして、当たり判定タスク・描画タスクが、 自動的に処理するようにする。 2)各タスクのリストを順にたどっていき、タスクの属性(敵・味方等)を元に、 各タスクのワークエリアから座標を取得する。 です。 なにかよい方法はないでしょうか? 2.タスクシステムは、双方向リストで動的にメモリを確保・開放しています。 動的確保のため、タスクの生成・削除が多いとメモリが虫食い状態になってしまいます。 静的配列を使った方がよいのでしょうか? ただし、静的に確保するためには各タスクのデータ構造は構造体で定義しなくてはいけないため、 (クラスだとポインタを使うのと代わりないため) 外部から操作される可能性がでてきてしまいます。 それを考えると、 やはりクラスを使って動的に確保したほうがよいでしょうか? 3.現在、各タスクの登録時には実行する手続きを登録しています。 手続きではなく、基本となるタスククラスを継承した各クラスを登録したほうが、 コンストラクタ・デストラクタを自然に使えるので実装が簡単なのですが、 そうすると、タスク内でタスクをチェンジした場合に、 タスクの情報(座標等)を引き継ぐことができません。 そのへんがクリアできれば、クラスの利点を生かしたタスクシステムが作れそうなのですが。 長くなってしまいましたが、ぜひ、アドバイスをよろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.