有休消化で金曜も休んだんだが何もやってねー。
SilverlightではSystem.Windows.Analytics経由でGPU情報をとれるので密かに収集することにした。GPU情報つってもGPUのベンダーID、デバイスID、ドライババージョンなので収集してもやばいことはないでしょう。やばい情報がそう簡単に収集できたらSilverlight自体がやばいし。
あと対象を決めずに収集しても役に立たないのでピアキャスで俺の配信見にくる人対象で。今Silverlightで作ってる物はDropboxに勝手に上がっていくので配信中はそこ見ると最新の物見れるよーってことになっている。で、見にいくといつの間にかGPU情報が集められているという寸法。我ながらひでぇ。
昨日試した限りではちゃんととれてるようだ。予想してたことではあるがみんなちゃんとGPU載ったマシンを使ってるようだ。Intelは意外に少ない。ChromeIGPとかTrio64とかあるけど。
表示がベンダーID、デバイスID、ドライババージョンと記録個数をだらだら出してるだけなので使いづらいんだが、そのうちベンダーIDとデバイスIDを数字じゃなくてちゃんと名前で出せるようにしたら誰でも見れるようにしてもいいと思う。まあ今でも誰でも見れるけど公開してるわけじゃないので。
IronRubyでゲーム作りも続けてる。
画像を読み込むのにXAPから読み込むようにわざわざコードを書いてるのは綺麗じゃないのでリソースからよみこみたい。ImageのスタイルをxamlのResourceDictionaryに入れて、作ったImageに設定してあげればいいのかな?
とやってみたら、どうも指定した画像はxapの外から読んできてしまった。うーん、スタイル設定を動的にやってるからxapの中は参照してくれないんだろうか。設定するまではただの文字列だもんなぁ。
いろいろ試したが無理っぽいので画像は今まで通りxapから動的に読み込むようにした。まあxapの外においてもいいんだけど配置がめんどいじゃん?
あと今までRectangleにImageBrushを設定して描画してたけど、RectangleじゃなくてImageでいいと思いついたのでそうした。
そんなことやってる間に新事実発見。WriteableBitmapのRenderを呼ぶと、Render前の画像は消えるものと勝手に思い込んでたがそんなことは全くないぜ。
つまりRenderを何度も呼ぶとその分書き足してくれる。普通に考えたらそりゃそうなんだが全然思いつかなかったぜ。思い込みこわい。
というわけで背景クリア用のRectange一つ書いたあとはImageをキャラクターと弾の分一個つ作ってRenderしまくり。こ、これは便利だ。というか完全にゲーム向けの機能…!
それで描画が速くなったかというとそんなことは無さげ…っつーか下手すると微妙に遅くなったかも?遅くなったとしても気のせい程度だからいいけどさ。それよりコードがすっきりなので利益はある。
そんなこんなでゲームのメインループあたりは出来てきたかも。Silverlightの使い方もなんとなく把握してきた。そろそろ観念してゲームの中身作っていかなきゃね。