5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

タスクシステム総合スレ part2

448 :名前は開発中のものです。:2008/06/19(木) 01:01:31 ID:twNSgHMm
>>438
あるエンティティが外部の情報を参照する際に
エンティティという枠より一段だけ汎用的な型で参照できたらいいなと思う。
EnemyとかPlayerみたいな型じゃなくて座標とか衝突範囲みたいな型。

全部のエンティティにget_position()とかget_hit_area()みたいなインタフェースを
実装するの面倒でいやん。特に全エンティティに共通のインタフェースのはずの
座標取得get_position()ができないクラスを後から作っちゃったとか、
参照してた先のエンティティが消えた(STGでプレイヤーキャラが死んだとか)というときに
(x=INVALID_POSITION, y=INVALID_POSITION)みたいな特別な座標データを用意するの汚いとか
そもそも座標を参照する前にエンティティの生存確認をやらないといけないとかが嫌。
外部エンティティの生存確認はそのエンティティの仕事じゃない気がする。

対策としてエンティティが別エンティティの情報を参照しにいくんじゃなくて、
エンティティが別エンティティに情報を流す(メソッド呼ぶ?)ようにしておいて
さらにエンティティ間に1段何かはさむ、
例えば情報元のエンティティから情報を取り出して
情報伝達先エンティティに与えるべき必要最小限度の情報(恐らく適度に汎用的な型で済む)
を抽出して情報を受け渡す(メソッド呼ぶ)とかしたらいいかなとか考えてる。
これなら参照先の外部エンティティの生存確認をエンティティでしなくてすむ。
間にはさんだやつが代わりに生存確認してset_target_position(x=?, y=?)
とかnot_found_target_position()みたいにメソッドの呼び分けしてくれたら楽そう。

特別な座標データ用意するとかしなくても済むし、エンティティ間の依存関係が
きれいに切れそうでより一層タイプセーフな感じにならないかなぁと。
でも >> 437 のやり方とは共存できなさそうだね。どうしたもんか。

441 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)