#regionなど

学生に教えていて気づくことは多いのだが、 学部二、三年生ならソースをがりがり書かせて読ませても良いとは思うが、 同じネタを学部一年生や、場合によっては小学生などにも教えたいという場合には、 余計なコードは極力隠して、 せいぜいパラメータくらいをいじらせたいこともある。

で、 Farseer Samples 2 というものを作ってみたのだが、 ここで気をつかってるところというのは

balls.Add(new Ball(physicsSimulator, graphics.GraphicsDevice, x, y,...));

などと書くのではなく、メソッドを一個かませて

addBall(x, y, ...);

のようにするとちんぷんかんぷん度がかなり少なくなる。 そうなのだ。balls.Add(new Ball()) などと書いた方がわかりやすいなどと思えるのは、 クラスとかコンストラクタとかリストとかその辺をきちんと学んだあとのことなのだ(或いはそれらをきちんとしつける時)。 physicsSimulator や graphics.GraphicsDevice なども Farseer や XNA に慣れ親しんでない人には呪文にすぎない。

ようするに processing がやってるようにやればよい。

#region ... #endregion

で見る必要のない部分を隠してやることで、やはりちんぷんかんぷん度が少なくなる。

質量やインパルスの強さなどのパラメータはメンバ変数(C#で言うところの静的クラスフィールド。そのクラスから生成されたインスタンスで共有される)として公開してやり、クラス定義を書き換えなくても設定できるようにする。

x,y座標などは width / 2 とか 2 * height / 3 などのような相対値ではなくて、 200, 300 などの数値を直接書くようにする。

XNAもFarseerもすべてブラックボックスの中に隠してしまう。 ここまでやってあげれば小学生にもいじれるわな。 プログラマの方がかなり気を使わねばならないわけだが。

そうか、paddle ではなくて flipper というのか。 やれやれ。