日記(938)

<前 次>

複数行入力対応InputBox

ふにゃさんの残り一枠、コインにしようかとも思ったのですが、もともとふにゃさんは集めるゲームであり、集めなければならないものと集めたほうがいいものが混在していた場合、混乱する可能性が高いためやめておいたほうがよさそうです。
単なる1UPという線もあるのですが、ミスするとアイテムや敵の状態なども含めて全部元の状態に戻ってしまうためこのあたりの公平さを考えると実装が難しそうです。
通過するとヒントが表示されるというのもよさそうだと思ったのですが、これはこれで追加データが必要になるため避けたいところです。
冗談で、すぐ眠れるエリアというのも考えてみたのですが、空中にあった場合全然使えないし、そもそもゆっくり待って眠らせる楽しみがなくなってしまいます。
とにかく、実装が簡単で、現状のゲームに大きな影響を与えなくて、あればあったで嬉しいものが望ましいのです。

エディタのほうでは、拡張InputBoxに複数行入力機能をつけて、マップタイトルの複数行入力を可能にしました。
あと、メニューを作るだけ作って実装していなかった全体像(1.05ではメニューを消すのを忘れてました)を作り始めました。
大きすぎるマップなんかは縮小表示しますが、もう色々面倒くさいので、中層マップしか表示しないようにしています。

ソーティングとDirectMusic

こないだの限界突破したLineConstructorとByteEdit、今日アップしました。

NeoMuplのDirectMusicをどのように使うか決めるため調べものしてました。
MIDIの再生にはDirectShowよりもDirectMusicのほうが、読み込みが速かったり演奏が正確だったりして適しているのですよ。
で、DirectMusicですが、DirectX 7 for Visual Basicが、機能面や手軽さからよさそうだったので使うことにしました。
そうそう、自動ソート機能も実装しました。
ファイル名順、タイトル順、再生日時順の3つを、昇順と降順の2種類用意したので、合計で6種類のパターンから選べます。
曲を追加したときに並べ替えられるのはもちろんのこと、再生日時順のときだけ、再生するたびに並べ替えが実行されます。

IIB

うむ、とりあえずインデックスカラー・インデックスカラー・ブレンド比率が並ぶデータだから、拡張子はiibにしようと思います。
ヘッダに必要そうな情報は、まず識別情報に、インデックスカラーに使うビット数、ブレンド比率に使うビット数、画像のサイズに、圧縮方式やパレット内の色の表現方法の識別コードも必要かな。
そして拡張ヘッダ。
ヘッダの次に来るのがパレットデータで、生の色の情報。
あとは決められたビット数で、インデックスカラー・インデックスカラー・ブレンド比率を最後まで続けて、必要ならば圧縮も。
うんうん。決まってきた。

ブレンディング

ふにゃさんのとげとげの拡張をするついでに、最後に一つ余ったキャラ枠をどう使うか考えてました。
順当なところで1アップか、あるいは取らなくてもいいけど取ったバナナの数にカウントされるボーナスアイテムか、それとも他のものにするべきか、そして決まったところで、アイテムの外観はどうするか、そのあたりが決まっていないのです。

それはそうと、画像フォーマットを一つ考えてみました。
インデックスカラーの長所で、パレットを差し替えれば画像全体の色が変えられたり、パレット番号何番は服の色、などと色に論理的な意味がつけられたり、そういうところを活かしつつ、なおかつたくさんの色を無理なく表現できてインデックスカラーの苦手そうなアンチエイリアシングもしやすい形式です。
まず、パレットは意味のある必要最低限の色だけを用意しておいて、画像本体には、どの色とどの色をどんな割合で混ぜ合わせるかのデータを入れるのです。
もしかしたら似たようなのが既にあるかもしれないのでまた調べてみます…。

LongScroll

VB6のスクロールバーの最大値を32767から2147483647に仮想的に引き上げるクラスを作ってみました。
方法としては、従来のスクロールバーの値域0~最大32767を0~好きな値にマッピングしているので、指定した値が32767を超えるとスクロールバーの指す値が大雑把になってきます。
例えば最大値を65534にすると、スクロールバーで指定できる値は、0、2、3、4、8・・・となりますが、もちろんその間の値もプログラム側で数値指定してやれば取ることができます。

とりあえず、これをByteEditとLineConstructorにつけてやって、ファイルサイズ制限や読み込み行数制限を取っ払ってやりました。
ByteEditのほうはヘルプも最新のスタイルシートを使ってリニューアルです。

NeoMuol

Frieve Editor、使い始めてみました。
コンセプト的にはうちにあるメモちらしと似たようなもの、というか、ああいうのを作ろうと思っていて撃沈したのが今のメモちらしだったりするのですが。
というわけで、実に使いやすいです。
機能がいいくせにメモちらしより起動も動作も軽快と来たもんだ。
まだまだ使いこなすには程遠いようですが、テキトーにカードを散らかして遊ぶのもなかなか良いです。
こんなところでまでメモちらし負けてるよぅ…。

NeoMuplはリストと設定の読み書きまで。
識別子として「NeoMupl015」と書くべきところを間違えて「NeoMuol015」にしてしまったせいで読み込めなかったりもしましたが、もう大丈夫です。
読み書きの処理自体は今のところ問題はないようです。

ふにゃさんの裏話を一つ更新しました。
とげとげの話です。
…が、どうやら次のバージョンでまた何かあるようです。

1173192669.png

広いだけじゃないのだ

NeoMuplのファイル読み書きを作り始めました。
VB版とは互換性を持たせない方向で。
う~ん、もしかすると読み込みだけなら旧バージョンのものも可能かもしれませんが…。

ふにゃさんの広いステージ、7割ぐらいできてきました。
いやー。のってくると楽しいもんですね。
部分部分で一つのステージとして成り立つほどのボリュームがありながら、更に他の部分での行動を受けて変化してゆき、取れなかったアイテムが取れるようになったりアクセスが楽になったり。
さすがに滅茶苦茶時間のかかるステージなのであっさり死んでしまうような嫌な仕掛けは少ないですが、それでもところどころに失敗するとそれで終わりという場所、特に順番を考えるべき場所は数箇所設けています。

<前 次>