PhysicsSimulatorView.cs

Farseer の Demo を漁っててみつかる PhysicsSimulatorView.cs を使うと、 衝突した箇所とか外接矩形などを表示させることができる。 XNAは周知のように矩形や円や線分などを描画する関数がない(前身の Managed Direct X 1.1 にはあったのだが)。 XNAが描画できるのはスプライトか3Dのポリゴンだけだ。 ではどうやって矩形や円を描画しているかというと、 そういうスプライトを描画して(つまり new Texture2Dとかやって、Texture2Dクラスのコンストラクタで作るわけですね)、重ね描きしているのだ。 それは Farseer についてくる DrawingSystem というおまけのライブラリ (?) がやってくれる。 RectangleBrush.cs、LineBrush.cs、CircleBrush.cs、DrawingHelper.cs という四つのソースファイルで構成される (DrawingHelper.csのソースはなかなかのみものだ)。 ここで brush と言っているのは、おそらく Quake エンジンなどで言う brush と同じ意味だろう。 なぜこのような基本形状のことをブラシというのかについては、これまでもいろいろ調べてみたが、良くわからん。 PhysicsSimulatorView.cs も当然この DrawingSystem を利用しているので、 一緒に拾ってくる必要がある。 Drawing System や PhysicsSimulator は

using FarseerGames.GettingStarted;
using FarseerGames.GettingStarted.DrawingSystem;

などと書けば使うことができる。