日記(1070)

<前 次>

音楽編

DirectMusicのサンプルを作っていました。
プログラムそのものは簡単なのですが、やっぱり曲データですね。
Bomber丸のテーマでも鳴らしてみようかと思ったのですが、なんだか自分で聞いてて恥ずかしくなったんで、「ふにゃふにゃ」の音楽のボツ曲を2倍速にして鳴らすことにしました。

ダッシュラン

ドラクエ7のデータを集めてました。
素早さの種って相当手に入りにくそうです。
あと、カービィ64で、背後霊のように現れるダークな兄弟たちを撮影。

ガベージコレクタ

アクセスログ回収。
403エラーが増えてました。
わざとですけどね。

「RPG±0」で、DirectMusicを使えるところまで作りました。
そして、64個のサウンド+ミュージックのバッファも。
最初はObject型かVariant型の配列64個を作って両方に対応するつもりでしたが、型判別が面倒臭そうだし、自動メンバ表示が出てこないので、DirectSoundBufferとDirectMusicSegmentの両方を64個用意し、どちらを使うかを判別するための変数も64個。
どうせCreateしない限りは大してメモリを使わないんだし、変数が64個から192個になったってそう変わるものではないでしょう。
終了処理では、オブジェクトの実態の有無とは関係なしに片っ端からNothingにしています。
この辺ガベージコレクタが働いてくれてるのでCなどのようにNULLじゃなければ解放とかそんなまどろっこしいことはせずに済んで楽チンです。

掲示板のアイコン追加

昔に学校などで貰った、今になってはもういらないプリント類を整理していました。
高校時代の散々な成績のテストはシュレッダーにかけてポイ。
他のものも例外なく破いてポイ。
シュレッダーを分解掃除していたらばらばらになっちゃいました。
すぐ直したけど潤滑油が手についた。

「CharaBox」の画像別の表示を作りました。
Jpeg294個、GIF645個、なし331個でした。
ついでに、最終更新日別の表示に最終更新から1年以上2年未満のカテゴリーを追加しました。

「ふにゃさん」に登場するギヤバネを描いてみました。
敵か味方かと言われると、敵と言わざるを得ないのですが、行動がわかりやすく、扱いやすいので、うまく立ち回れば味方のように使うことも可能です。
ちなみに、バネは何かが近づかないと出てきません。

アクティブウィンドウ

「RPG±0」で、DirectMusic&Soundの処理を作ろうとしていたのですが、そのためにはデバッグのためウィンドウを切り替えたりすることが必要となってきたので、先にウィンドウ切り替え処理、つまり、DirectDrawのウィンドウモードでの使用(こちらはとっくの昔に実装済み)と非アクティブのときに他のウィンドウを支障なく操作できるようにするような処理を作りました。
「ふにゃふにゃ」の時には非アクティブの検出にはWindowsからメッセージを受け取ってそれで判別していましたが、VBではそんなこと(めんどくさくて)できないので、GetForegroundWindowがメインウィンドウのhWndでなかったら一致するまでずっとWhileでDoEventsだけの空ループを回すという仕様にしました。
空ループを回す前後に音楽や効果音などの中断処理を入れれば完璧なのですが、上と同じく面倒なのでそんなことはしません。
一応、サウンド処理自体もDirectSoundクラスを生成するところぐらいはできています。

ばね

「ふにゃさん」に登場する敵「ギヤバネ」を描いてました。
機械仕掛けのおもちゃっぽい敵で、外側にぎざぎざがついています。
触ってダメージを受けることはないけど、跳ね飛ばされることがあるのである意味ダメージを受ける場合よりも注意が必要です。

「カービィのきらきらきっず」で、9999点になったら、ギブアップされちゃいました。
あと、ラウンドクリア全クリア。

マスターテンポ

「真面目にDirectX」を書くのと「RPG±0」を作るためにDirectX7のマニュアルを見ていて、DirectMusicの基本的なところを読み返していたら、偶然C++のSetMaster~関連の記述を見つけました。
VBのSetMaster~関連の関数はC++用には見つからなかったのでVB特有の機能だと思っていたのですが、どうやらSetGlobalParamでGUIDを設定することにより可能なようです。
本当は「RPG±0」のほうと作る予定だったのですが、C++でのSetMasterTempoを試すため、「DirectMusicPlayer」のほうに変更を加えました。

<前 次>