Sprite内の定数
このような定義を考えてみた。(追記:これではダメだ)
class Sprite Point = Array Box = Array Circle = Array Triangle = Array end
これは衝突判定範囲を指定する際に、配列だとちょっとわかりにくいかなーと思ってその対策案のひとつ。
結局全部Arrayなので違う要素数のものを作る、すなわちPoint.new(1,2,3,4,5,6)とかすれば三角形の衝突判定になってしまうわけだが、使い方を守れば見た目的にわかりやすくなる。
また、以下のように定義すれば
class Sprite class Line < Array def initialize(x1, y1, x2, y2) self.push x1, y1, x2, y2, x2, y2 end end end
三角形の衝突判定を応用して線分の判定ができるようになる。今のところ線分の判定は実装していないから三角形を使うしかないのだが、それだとちょっと面倒というか変というか。こうすればわかりやすいというかラクというか。
ただまあ、現時点では1.3devには三角形の判定が入っていないので実際に使うことはできないわけだが。
あと、三角形の判定の中に線分用の高速ロジックを分岐させて入れておくといいのかもしれない。使うことが多いのなら。