2008/09/12(金)にゅーふれーむわーくの悩み2
2008/09/11(木)にゅーふれーむわーくの悩み
もし音ゲを作ったら、内部処理60fpsはやっぱ足りない気がする。判定はともかく、音出しは音が最悪16ms遅れるわけで、少し音ゲ遊んでる人には「なんかズレてる?」ってのはまぁバレる。というか、俺だったらバレる。気持ちよくなくなるし。内部処理を増やそうとすると、描画を実行するタイミングとか測るのが難しい。やっぱりスレッド2本立てでやるべきなのかなぁ、とかいろいろ考えちゃう。しかしてマルチスレッドプログラミングは大変だ。
そんなこんなで、新SDK作りが全然進まない。DirectXってスレッドセーフなのかな。てか、.NETのスレッドはソフトウェアスレッドらしい、Win32ネイティブなスレッドとの関係もいまいちよくわかんない。こういうことってサークルにも相談できる相手はいなくて、これからどうしたらいいのかなぁ。
2008/06/20(金)MIDIファイルが再生できます
2008/06/09(月)げーむふれーむわーく メモ
一通り完成はしている。いつのまにか6月だし。
あとはまぁ、タスクライブラリをちまちま書くか書かないか。
あたまいてー……梅雨め!
Operaで http://www.logos.ic.i.u-tokyo.ac.jp/icpc2007/jp/ 開くと面白いww
2008/05/19(月)Direct3D Sprite の罠
この間のDirectSoundといい、DirectXには罠がいっぱい。
回転とか拡大縮小とか簡単にやりたいなーと思ってDraw2Dを使ってみるもどうも直感的じゃない(個人的に)。
そう、これ描画先座標が拡縮回転前指定なんですよね。
つまり、平行移動、拡大縮小、回転 の順番。
どっちかと言えば、2倍に拡大したものをどこどこへって指定したいけど、↑だと描画先に1/2しなきゃいけないし。その上、Viewport+Transformで原点自由に変えられてこりゃいいやーとか思ってたら、ちょっとちょっと、Draw2DたんはTransform弄っちゃうじゃないですか!
Draw2Dはつかえねー……。とゆーかかなり使いにくい。こりゃもー自前でTransformするしかないよねー。
でも行列って計算コスト高いしなぁ……、そもそも、どこを描画時のパラメータにしてどこを描画前に予め与えておくのよ。前が見えなくて先週一週間ずっと胃を痛めていた。とか
今日あらためて、結局やらないかんことって何? と整理してみる。
チップ単位での 拡大縮小・回転・平行移動。そしてViewport+原点弄くるための、平行移動……
あれ、これローカル座標系とワールド座標系の行列計算してるだけじゃーん! ってことに気づく。
ついでに、計算コストの高い行列同士の計算は、予め手計算してみたら案外すっきり。
というわけで、今日やったこと。
拡縮→回転→平行移動 の順番で噛ました行列を作って返してくれるメソッドを作った。
えおなゆ様にすぺしゃるさんくす!
今回は、前回のQoFで避けていた地雷をどんどこ踏みつつ、いろんな人にお世話になりまくっているなぁ!
2008/05/10(土)Managed DirectSound でハマる
例の OggVorbis.dll もよく動いて、Framework系の仕事は一通りかなぁと思っていた矢先のデキゴトです。
昨日、部室に置いてあるパソコンで例のコードにより音楽を再生(ストリーミング)してみたときのデキゴトです。
音飛び しまくる。 音が飛びまくる。
え、なんで?! 俺のマシンではちゃんと動いていたし、
そもそも、このDLLここで作ってテストしたときはちゃんと動いてたんだよ?
2008/05/08(木)つーさのげーむふれーむわーく for C#2.0 with MDX1.1
今名付けた(ぁ
今作っているもの。
サークルで作ることになりそうなゲームに使うための。
2008/05/05(月)続・vorbis.net
エラー 1 fatal error LNK1257: コードの生成に失敗しました。 vorbis.net