2009/10/06(火)GSDKでゲームを作ろう[最終回]
ブロック崩しを作りました。
オブジェクト指向を理解していて、かつ、
ソース内に記述されているコメントを読んだら使い方はわかると思います。
おわり。
今回でめでたくこの連載は終了いたします!
今までご愛顧ありがとうございました!!
ついでにGSDKをバージョン1.1に更新しました。
今回のQoFRのためにいろいろと機能追加とバグフィクスがすさまじいです。
詳しくは、QoFRの開発日誌をご覧ください……
期末が終わるまで 夏休みが始まった 修羅場 その1 修羅場 その2 修羅場 その3 ←この辺の rev番号が若いやつはGSDKのリポジトリログです。
ろくなこと書いてないので役に立たなそうですね。
たぶん、次期バージョンはSlimDX使っての書き直しになるんじゃ? と思うので、
現在のGSDKはこれ以上アップデートしないかもしれません。
2009/02/26(木)実験 - デリゲートの渡し方
匿名メソッドの速度とか、どう渡すのが一番速いのかなー。
ちょっと気になったので。(1)~(4)で一番速いのはどーれだ。
class Test { class A { public int a; } class B : A { } void DeA(A obj) { obj.a++; } void DeB(B obj) { obj.a++; } void DoB(Action<B> act) { act(obj); } DoSomething() { DoB(DeA); // (1) DoB(DeB); // (2) DoB(delegate(B obj) { obj.a++; }); // (3) { // (4) Action<A> act = delegate(A obj) { obj.a++; }); DoB(new Action<B>(act)); } } }
それぞれ1000万回の実行時間を計った。
2009/02/08(日)指定した正規表現にマッチしなくなる操作をキャンセルするテキストボックス
追記: TextBox.Validatingでできそうです。車輪の再発明だった模様。
指定フォーマットを入力させたいとき、MaskedTextBoxは便利なんだけど、int型を受け取りたいとか、double型を受け取りたいとかそういう目的にはイマイチ使い勝手が悪いような気がしたので作ってみた。
たとえば、ユーザにdouble型を入れて欲しい場面があった。
ユーザがちゃんと入れてくれることを信じるわけにはいかないので、double.TryParseでエラー処理を書くのはもちろんなのだけど、その前の段階で少しでもエラーをサプレスできないかなと思った。
そして好奇心からごりごりとWin32で作ってみた。
デザイナで配置してRegExPatternプロパティに
^-?\\d*(\\.\\d*)?$
とか、書く。操作後マッチしなくなるような操作は受け付けない*1。Win32で作ったので、x64では動かないかもしれない。WindowsXPでは動いてるが、他のバージョンでは動かないかもしれない。そんなことをするくらいなら、素直にTryParseのエラー処理だけしておくべきなのだとも思うが。まぁ、好奇心だから。
最近、Win32のプラットフォーム呼び出しにあんまり抵抗がなくなってきた。やばいなぁ。