考え事20120219の巻

半年くらい経った気がしたけど実はまだ一月半という罠。


MarbleTownsは大体のデザインが決まったので、あとはそこまで走り込む作業。
それが夏までに終わればいいけれども。
とはいえしばらくは作業できない状況なので、どうにかこうにか。。。




そういえば去年の7月頃、オフラインの方の関係で、アメリカに行っていました。東海岸の方。
初海外で初飛行機で、地球が丸いのを知識以外で初めて知りました。
同行者は勿論いましたが、割と独りでフラフラしてたことも。
なんやかんやで、無事目的は果たして一週間程で帰国。


これも記憶の中では2年くらい前なのですが、実はまだ半年と少しという罠。
この時間感覚は果たして良いのか悪いのか、はてさて。。。
そんなことを思い出していました。

考え事20120107の巻

放ったらかし気味になってきたので何か書く。
一応こっちの存在意義は技術メモ的なものです。存在意義が最近お留守ですが。


最近いじっているXAudio2の方も、もう少しこなれてきたら技術メモとして色々まとめたい所。
個人的にWebの資料が余り多くない気がして。
一応Wavファイル、Oggファイル、プログラム的に生成した音声の3種を一律に扱う機構は、
C81で出したMarble Townsから導入済み。ただし、殆どその機能を使ってないけども。
その内役に立つ(はず)。


Marble Townsに関しては、2D探索(ジャンプ)アクション?といった形で、今後進めていく方針。
昨今の流れで弾幕を躱すようなアクションになるかというとそんな筈もなく、
回復アイテムがぶ飲みしながら敵弾に突っ込んで制圧するような、
すり潰してすり潰されるデザインにきっとなる気がします。殴り合い。


次がどのタイミングになるかはまだ確定してないですが(C82?)、
もう一つ入れたい要素があるので、それが間に合えば、
ようやくそれらしくなるかなあと思う今日この頃です。


兎にも角にも、夏から冬で一つ出すのはとっても大変でしたはい。

進捗とか

気づけば11月も半ば。
色々あった2011年も、もう残り少ない。正直、色々ありすぎた感も。


次作の仕込みは順調といえば順調。
去年くらいから模索していた、とある機構については実験レベルでの動作が確認できた。
例によってコードを整理する必要があるけども。。。
そろそろシステム的にできることが一気に広がるので、
慌てないで足元を固めて、今後の作業を楽にする方策を練らないと。
この作業を怠っていきなり作り始めるとコード量が爆発して挫折しかける。
主に前回の経験。


諸般の事情で、生活環境を変えないといけない時期が近づいてきている。
まぁずっと前から分かっていた事ではあるけども。
なんだかんだで、気がついたらこういう生活が当たり前になっていたけど、
これからはもう少し、他の事にも目を向けようと思う、今日この頃。
その意味では良い転換期になるのかもしれない。


ところでもう冬が近い気がするのに、この暑さは何なのでしょうね。

進捗など

最近は次作の仕込み作業と称して色々作業してます。


今日ようやく、兼ねてから欲しかったお手製ライブラリに、
ファイルから取り込んだ音声と、プログラム的に生成した音声を
一律に扱う機構を追加出来ました。結構面倒だった。
使いながらコード最適化したり、まだまだこれからですが。


まぁ正直、当面この機能が何の役に立つんだという話なのですが、
そのうち役に立ってくれることでしょう。
次作では役に立たないかも。


もうちょっと色々整理したら、またビジュアル方面の作業に着手の予定。
コミティアまでに間に合うかは自信薄。

【WPF】writeablebitmap の使い方めも

探した範囲でなかなか良い資料が見つからず、
数日引っかかっていたので自分用メモ。
コード抜粋+要点まとめなのでコピペでは動かないので注意。


基本はロック〜アンロックの間に、
WritePixels関数で色情報を書き込む流れ。
元画像の一部を切り取るときはCopyPixels関数を使う。
この両関数の仕様をなかなか理解できずに泥沼。


第一引数のInt32Rectは領域指定。書かないと全域が指定される(?)
第二引数はコピー先(or転写元)の配列。
この辺は画像のフォーマットに依る。今回はIndexed8フォーマットを使用したのでbyte。
第三引数は一行あたりのバイト数?"stride"以上の説明が見つからず困った。
第四引数はコピー先(or転写元)のオフセット値。
基本的に配列まるごとコピー(or書き込み)なら0で大丈夫みたい。


以下コード断片。


//--------------------------------------------------

BitmapImage bitmap;
WriteableBitmap writeableBitmap;

//↑は適当に初期化する


writeableBitmap.Lock();

Int32Rect rectTo = new Int32Rect(tx, ty, WIDTH, HEIGHT);
Int32Rect rectFrom = new Int32Rect(fx, fy, WIDTH, HEIGHT);

byte[] pixels = new byte[WIDTH * HEIGHT];

bitmap.CopyPixels(rectFrom, pixels, WIDTH, 0);
writeableBitmap.WritePixels(rectTo, pixels, WIDTH, 0);

writeableBitmap.Unlock();

//--------------------------------------------------


元画像の一部をWriteableBitmapの指定した部分に書きこむような処理。
マップエディタとかはこれで作れそう。


そろそろエディタとかにも力を入れないとリソース側が追いつきそうにない今日この頃。
モノクロは中途半端な出来のエディタだったので色々大変でした。