Jewel-mmo開発日記

RubyでMMORPGを作る過程を記録する日記。 Yokohama.rb 発起人。
2006-02-24

[EesyRocket]タスククラスの未実装部分

  • 当たり判定
  • 感性(vメソッド、aメソッド、動摩擦係数、静止摩擦整数)

衝突

ちょっと考えて思いついた当たり判定の案としては、オブジェクトとオブジェクトの関連を保持するクラス(タスクかな)を設けるとどうか。

Collision.new :gtasks => [gtask0, gtask1, gtask2]

こんな感じで2つ以上のGameTaskのインスタンスを与えて初期化とか。

衝突したときの処理を当たり判定クラスに書くべきか、衝突するタスクそのものに書くべきかは不明。

--

同じオブジェクトでも衝突する相手によって振る舞いが変わるから(敵、敵の弾、パワーアップアイテムそれぞれで違う)、衝突処理はCollisionが持つべきだ。

時機とパワーアップアイテムが接触した場合に実行しなければならないのはこの2つだ。

  • 時機#powerup
  • パワーアップアイテム#destroy

そうか、Collision初期化時にこのメソッドも渡せばいいんだ。

Collision.new :gtasks => [[ship, :powerup], [item, :destroy]]

とかかな。