program

回転囲碁並べ

HSPで、回転しながら棋譜を表示するだけのソフトを作ってみた。 はじめてHSPでちゃんとプログラムを作った感想 ・変数名を使い捨てさせて欲しい ・変数名のせいで謎のエラーを出すな ・再帰関数を使わせろ ・たのむから実数で計算してくれ ・xとyをセットに…

再描画か

自作のプログラム起動時に、時々ウィンドウが真っ白になるというバグに悩んだ。 試行錯誤の結果 case WM_PAINT: 描画処理 となっていたのを case WM_PAINT: BeginPaint(hWnd, NULL); 描画処理 EndPaint(hWnd, NULL); にしたら、直った。 これでも教科書的に…

バナナウェイ(仮)(3)

車の挙動を作ろうってことで、ひとまずベクトルクラスを作った。そして演算子のオーバーロードを初体験。自分で作ってるにもかかわらず、 CVector v1; ... v1.x += cos; v1.y += sin; ... CVector v2; v2 = -v1 * 2; ← みたいな書き方は慣れていないのもあっ…

バナナウェイ(仮)(2)

コンピューター車をあらかじめ設定したコースラインに沿って走らせるようにした。意外と簡単だった。簡単なわりにおもしろい、これ。なんか生きてるみたい?さらに、こっちの車をよける機能を追加。これも簡単。簡単なわりに、何これ、めちゃくちゃおもしろ…

マリオカート風描画2

第二段階。というか、これが限界。 fpsは60に達したし、まあいいべ。 逆変換(?)みたいなこともできるようになったので CPU車や土管も描けるようになった。 キャラは3Dモデルのプリレンダリングで行こうかなあと思うも そろそろ飽きてくるころで…

マリオカート風描画

マリオカート風の描画テストに成功した。 3Dとか勉強すれば、もっと楽なんだろうな〜と思いつつ、いろいろ図を描きながら比を取ったりしてできたのがこれ。 とりあえず第一段階ってことで、正直な書き方。遅い。 for (int y = 0; y 0 && Vd > 0 && Ud SetP…

簡易アニメーション

アニメ1 Aをグーの絵、Bをチョキの絵、Cをパーの絵とすると。 グーチョキパーを繰り返すアニメは A→B→C→A→B→C→… 数値で表すと 012012… となる。 1フレーム毎に1ずつ加算されるカウンターを使って、これを簡単に表したい。 これが、0101…だったら…

マリオカート

マリオカートはY座標毎のアフィン変換で作れるらしい。

HSPマップエディタ

超簡易マップエディタ完成。140行。短い!

HSP

Javaから逃げた男が向かった先はHSPでした。 わからないことだらけで、めんどくさいけど なかなかおもしろい仕組みだわ。ところで、HSPだと気軽に一行に命令を並べてしまうのだが こういうどうでもいいようなコードの羅列を 省略して表示してくれるような機…

キャストの落とし穴

VC++である。 char ch = 0xff; int n = ch; 当然nに0xffが入ると思ってしまいますが…… 意外なことに結果は0xffffffffです。 ちゃんと理解している人なら意外でも何でもないでしょう。 char型で0xffは-1を表し、int型で-1は0xffffffffだからです。 私は最後の…

windowx.h

windowx.hに便利なマクロ集があることをはじめて知った。

「画像の横幅widthとbppが与えられて4バイトでalignされたpitchを求める式」

2005-04-15 に出てきた式を何とか理解したい! pitch = (((width * bpp + 7)>>3)+3)&~3; まず、"width * bpp"の部分。幅*1pixelあたりのbit数。 →1ラインのbit数。次に、"+ 7)>>3"の部分。7を足して3bit切り捨てつつ8で割る。つまり、繰り上げて8(1Byteあた…