「WindowsAPI」に関する日記(2)

<前

文字列とかバリアントとか

プログラミングの「ShowCursor」を今書いています。
一応、コードはVBで書いています。

それと、あるサイトでByRefの方がByValよりも速いといったことを見かけまして、もしかしたら、と思って実験してみたところ、やはりByValの方が高速でした。
しかし、ByRefの方が高速だというのも間違いではないと思います。
これ以上書くと転載に当たるかもしれないので、そのURLだけ書いておきます。
http://homepage1.nifty.com/CavalierLab/
↑の「クラスモジュール講座」の「速度低下」に詳しく書いてありますのでそちらをご覧ください。

入学後最初の日曜日(それが?)

「TRPG+」のタイマーとマウス関連を作りました。
知ってましたか?
ShowCursor(0)を呼び出してもマウスカーソルが消えないことがあるんですよ。
ShowCursor(1)でもマウスカーソルが出ないことがあるんですよ。
フフフ……こんなことがあるから「Tokio's Web Site」は更新のネタに困らないんですよ。

とりあえず明日は3月3日に更新できなかった分を更新しようと思います。

Rect関数

予告通り、「IntersectRect」を更新しました。
次は「TabIndex」にでもしようかと思っています。
思っているだけですので必ずするとは限りませんが…

「ふにゃふにゃ」で、ステージ情報クラスに移行できていなかった部分があったので修正しました。
「まちかどバトル」の遅さは未だに解決策が出ません。
蓄積ダメージの処理もそろそろ作ろうかと思います。

何かを書きたいと思った時、本当に書きたいことを忘れてしまって、どうでもいいことしか書けなかったという経験、皆さんにもありますよね?

無題

IntersectRectについて新しい、というより当たり前の事がわかりました。
次の更新はこのことになりそうです。

明日から新学期です。
プログラミングをしている時間が短くなりそうです。
(↑既に短くなっている時期だろ!)

蛍光灯は付けたらできるだけ早く消した方が電力消費が少ないのは当たり前ですが、実は蛍光灯を消してすぐに付けるよりは付けっぱなしの方がいいのです。
興味があったら調べてみてください。
最近の蛍光灯は進歩しているのでいつもこの通りとは限りませんが…

無題

予告通り、「IntersectRect」のサンプルをアップしました。

「ふにゃふにゃ」で主人公が普通に立っているときに瞬きをするようにしました。
それと、スクリプト側から主人公のポーズを指定できるようにしました。
攻撃の処理は厄介そうなので暫く放置されそうな雰囲気です。

「リダクター」で、パレットと絵の本体を読み込む部分を作りました。
減色後の画像のためのメモリ確保も。

無題

「IntersectRect」のサンプルができました。
とてもIf文では対応できないようなパターンでも使えます。
当たり判定をIf文でやっていて苦労した人にとっては感動的なくらいです。
22日にアップする予定です。

サンプル2でエイミーにコテンパンにやられている敵は「Bomber丸World」でボスとして登場する、プララというキャラクターです。
前半に登場しますが、結構強いです。
今日はそのプララのアイコンサイズの絵を描いていました。
というより100%アイコンですが。
ただでさえドット絵が下手なのにたったの4階調でメタリックを表現するのはかなり難しいです。
「Bomber丸World」のマップチップ用と「パネルα」の余ったマス用です。

山側からの風、天気は曇、虹が出ていた

「ふにゃふにゃ」で、四角形の手前に画像を表示しようとした時に画像が消えるバグを修正しました。
原因はswitch文の中に書いていたものと同じbreakをif文の中にも入れてしまったことでした。
switch文にかかるべきbreakがfor文にかかってしまっていたのです。

「IntersectRect」のサンプルを作っています。
Line関数も使います。

「リダクター」の制作も進めています。

無題

「ふにゃふにゃ」にステージ定義ファイルの読み込み部分を作りました。
ステージ定義ファイルは、始めの4バイトが「f2s1」、次の32バイトがステージタイトル、その後に二人の主人公の初期状態、使用する線の数、線の初期状態、という構成になっています。
これからの予定は、ステージ定義ファイルとスクリプトファイルがあればステージ定義ファイルを先に読み込んでからスクリプトを実行し、スクリプトしかなければスクリプトだけで実行し、ステージ定義ファイルしかなければスクリプトは別に用意されたものを実行し、どちらも無ければエラーを出すようにするつもりです。

まだ開発に時間がかかるかもしれないので、開発室を本格的に作るかもしれません。
もし作ることになったら、「Bomber丸World」の情報も流してみようと思います。

「mciSendString」で、入力ミスがあったので修正しておきました。
……プログラミングのコンテンツ、メインとか言っておきながらかなり手抜きですね、すみません。

無題

あくまでこのサイトのメインはプログラミングですからね。
ソフトの更新が多いのは変更点が多いからに他ならないのです。

そんなわけで次に更新する場所はプログラミングのところで、内容は「mciSendString」です。
MIDIでもWaveサウンドでもAVIでもWMAでも場合によってはMP3でも再生してしまうあれです。
あれはあれでもあのあれの色違いじゃありませんよ(わからんだろうなぁ)。
兎に角(『うさぎにつの』って読むなよ)、「MusicPlayer」の2以降に使われているあれです。
mciSendStringってできることが物凄く多いのでよく使われるものしか紹介はしません。

ルターとルソーを間違えた

「ふにゃふにゃ」にステージセレクト機能を付けました。
ステージファイルを開くことができます。
ステージファイルに関しては多少制限がありますが、問題は無いでしょう。

ボス戦に使う音楽も作っていました。
よくわからない音楽ですが今回のボスにはそっちの方が合っているはずです。
あまり関係ありませんが、「Bomber丸World」のボス音楽はまともです。

伸縮転送系の処理に少し苦戦しています。
どうしても他のHDCを介して描画を行わないとうまくいかないのですが、そのためにはプログラムを大幅に変更する必要があるのです。

最近タイプミスが激しくなって困っています。
ここに書こうとした中でも「あるのです」の「の」を「ま」と間違えたり(ローマ字入力です)、「タイプミスが」の後に何故か「あ」を余計に書いてしまったり、プログラムの中でも、「current」と書くべきところ7箇所のうち実に6箇所で間違えて「currect」と書いていたのです。
どうやったらこんなにも凄まじいタイプミスができるのか自分でも不思議でなりません。

社会のテストで「ブライス」と書こうとして「ブラウス」と書いてしまった人の気持ちがよくわかる、しみじみ……

無題

リンクの「座標平面」のバナーが正しく表示されていなかったので修正しました。
ついでに文面もほんの少し変更しました。
見ないでね。

面白いことを思いついたんですが使えないことがわかりました。
残念です。

IntersectRect関数は、戻り値で矩形同士の当たり判定も行えて、尚且つ当たっている部分もわかります。
「ふにゃふにゃ」ではそれを利用してビットマップの表示を行っています。
便利です。

駅前でツバメの鳴き声が聞こえたのに姿は見えず、もどかしい思いをさせられる日々を一週間ほど続けていましたが、ついにツバメを見つけることができました!
嬉しいです。

無題

いまプログラミングの「WinHelp」の説明を書いています。
マニュアルが英語でしかも使い方がやたら複雑なので今しばらくかかりそうです。
やはりこれからの時代、HTMLヘルプです!! (爆

Windowsヘルプは圧縮ビットマップが使えないそうです。
拡張子がCHMのファイルはヘルプそのものが圧縮されているそうです。

誰かCHMの作り方を教えてくれぇ~っ!!

<前