sb_init help
すでにいくつか作られていますが、
Shooting Game Builder の設定ファイルを編集するツールです。
コンフィグだけではなく、簡易メニューとして使用できるように、
そのまま起動できるようになっています。
せっかくなので、ウィンドウとフルスクリーンも
気分によって選べるようにしてみました。
■使用方法
■独自設定(カスタマイズ)
■ライセンス
■注意点
■ソースについて
■使用方法
メニュー画面とキーコンフィグ画面の2種類の画面があります。
メニュー画面では、ゲームの起動と、キーコンフィグが選択できます。
キーコンフィグ画面では、ボタンの設定ができます。
・メニュー

キーボードのカーソルキーの上下、またはパッドの十字キーの上下で
選択して、スペースとかEnterとかそれっぽいキーか、パッドの
何かのボタンを押すと決定です。ESCキーで終了。
ZXCキーあたりは、この画面では使えません。
・キーコンフィグ

キーボードのカーソルキーの上下、またはパッドの十字キーの上下で
選択して、何かキーを押すか、パッドの何かのボタンを押すと設定です。
設定すると、次のボタンの設定がそのまま続けてできます。
Syncro Typeが選択されている状態で、左右キーを押すと、
同期処理のタイプを設定できます。
Frame Rateが選択されている状態で、左右キーを押すと、
フレームレートを設定できます。
Quitが選択されている状態でボタンを押すと、メニュー画面に戻ります。
■独自設定(カスタマイズ)
メニューとして使えるように、という目的がありましたので、
同梱するゲームに合わせて見た目をカスタマイズすることができます。
カスタマイズ用の設定ファイルは実行ファイルと同じフォルダに置きます。
・メニューのカスタマイズ
画像を用意しておくと、ゲームに合わせた雰囲気の画面にできます。
例えば、こういう画像(便宜上赤枠で囲っています)を用意しておけば、

このように表示されます。

用意した画像は上から順に、
(1)メニュー1(ウィンドウ表示で起動)
(2)メニュー2(フルスクリーンで起動)
(3)メニュー3(キーコンフィグを起動)
となっております。
画面を丸ごと更新しますので、メニュー形式ではなくて、
完全に違った絵にしても問題ありません。
どういう画像を用意するのかは、ソースフォルダの config.bmp を
参照してください。
某シューティングコレクションみたいなメニューもできますね。
・キーコンフィグのカスタマイズ
キー名称設定ファイルを用意しておくと、キーコンフィグ画面で
その名前が反映されます。ゲーム内での武器の名前などを設定すれば
ボタンの割り当てが分かりやすくなります。設定しておくと、
このように表示されます。

「EXE=」に続けて実行ファイル名を記述しておくことで、ゲームの
実行ファイル名を変更している場合でも実行できるようになります。
「TITLE=」に続けて何か記述しておくと、このツールでの
タイトルバーに表示される文字列を設定できます。
キーコンフィグだけで充分だし、メニュー機能なんか不要だよ、
という人は「KEYONLY=1」と記述しておいてください。
キーコンフィグ設定だけのモードで起動します。
どういう設定がどう反映されるのかは、ソースフォルダの中の
config.dat を参照してください(単純なテキストファイルです)
■ライセンス
違法な用途でない限り、無償での利用を認めます。自由。フリーダム。
添付するゲームの雰囲気に合わないときはアイコンだけの変更もOK。
使用に際して、連絡も不要。もちろんヘルプのどこかに「使用しています」などと
書く必要もありません。著作権は放棄できないらしいのですが、主張しません。
ゲームに添付する場合は、ソース、ヘルプは同梱しなくても構いません。
ツール自身の再配布も連絡無しで自由に行っていただいて構いませんが、
その場合のみ、ソース、ヘルプは添付しておいてあげてください。
上記の通り、完全に自由ですが、いかなる使用用途にあってもすべては使用者の
責任のもとで使用してください。そんなのいやだーって人は使用を中止してください。
ゲームに同梱する場合は、そのへんの注意があるとよいと思いますが
そもそもゲーム本体の注意として同じことを述べているでしょうから
それに倣えばOKです。
■注意点
起動時に既存の設定ファイルを読み込みますが、ゲームを開始すると
設定ファイルを上書きします。ゲームを開始しない限りは設定ファイルを
更新しませんので「更新だけしたい」という用途には向きません。
設定はすべて完全に上書きしますので、設定項目が増えたときは、
そういう対応が必要になります。
■ソースについて
HSP3で作ってみました。これくらいの小さいツールだと簡単ですね。
ネットで見つけた外部モジュールを使用しています。詳細はソース参照。
みんな楽しいゲームを作ろうぜ。