RPGツクールと数学のブログ

RPGツクールと数学についてのブログです。

相互変換モジュール 実行ファイル化してみる

過去ブログの転載です。

↓前回作ったクイズゲームのプログラムを、実行ファイルにしてみましょう。

fermiumbay13.hatenablog.com

実行ファイルにすることで、HSPをインストールしていない方のパソコンでもプログラムを起動することが出来るようになります。

send命令はHSP構文をイベント命令に変換してプログラムを終了させるものでしたが、send 1と設定することでプログラムを終了させずに変換のみ行うことができます。今回作成するプログラムでは使いませんが、ふつうソフトはイベント命令をコピーしたからといってソフトそのものも終了してしまう必要はありませんから、コピー後に終了しないときは上記の設定を用います。これを利用すると、イベント命令生成ソフトみたいなものを容易に自製できるようになります。

それでは、実際にプログラムを作成してみます。このプログラムは、起動すると出題数を聞かれ、それを入力してOKボタンを押すと例のイベント命令がクリップボードにコピーされるように設定してみます。

まず、出題数を可変にできるようにするため、

#define mondai 3    ;出題数はここで決める(5なら5問)

の行を削除します。

これ以外にいじるのは前回のプログラムに加えて、「// 本体」から先のみとします。

// 本体
mondai = 3    // 出題数の初期設定は3
screen 0, 160, 120    // 160×120のサイズのウィンドウを表示
input mondai,,,5    // 最大5桁まで入力可能の入力ボックス
button "OK", *start    // 「OK」ボタン(押すと*startへ飛ぶ)
stop    // プログラムを一時停止
*start    // ラベル

初期処理
出題
結果発表
// 本体おわり

dialog "コピーしました。"    ;確認メッセージ
send

↑まず、mondaiの値ははじめ3としておきます。screenはウィンドウを作成する命令で、第1引数にウィンドウIDを入れればそのウィンドウを新たに作成することが可能となります。プログラムを何も書かなくても現れるウィンドウは0番ウィンドウです。そのため、0番ウィンドウの大きさを160×120にするためにscreen 0, 160, 120という命令を入れています。すでに存在するウィンドウを指定した場合、そのウィンドウを再編集します。

inputは、入力ボックスを作成する命令です。第1引数に入力ボックスに対応する変数名を入れます。mondaiの値を入力するボックスにしたいので、mondaiと入力しています。第2、第3引数で入力ボックスの大きさを変更できますが、どうでもいいので省略しています。第4引数で入力ボックスに入れられる最大文字数(半角)を指定できます。とりあえず5桁としておきます。

buttonは、ボタンを作成する命令です。第1引数にボタンに書かれる文字を書きます。第2引数で、ボタンを押すとどこへ飛ぶのかを指定します。「*start」とはラベルです。2行下にある「*start」というラベルへ飛ぶことになります。

このままではプログラムは入力ボックス、ボタンを作成した直後にイベント命令の貼り付けに行ってしまうので、ボタンを押すまでプログラムが動かないよう、stopを挟んでおきます。stopは、その行でプログラムを一時停止させる命令です。そこで止まります。

ボタンを押すと*startラベルへ飛ぶので、そこから次の処理が始まります。

ボタン作るにはbutton、入力ボックス作るにはinput、ウィンドウ作るにはscreen、とか……HSPはこのようなものを作るのが非常に簡単ですね。どうなってるんだろう。

これでプログラムは完成です。実行すると出題数を変更できるようになっていることが確認できるでしょう。

f:id:fermiumbay13:20190802004513p:plain

次に、これを実際に実行ファイルにしてみます。実行ファイルにするのも簡単です。Ctrl+F9押すだけです。「実行ファイルを作成しました」と表示されたら成功です。同ディレクトリに「hsptmp.exe」というスープのファイルが出来上がっているはずです。これを起動させると、そのプログラムが実行されます。HSPをインストールしていない環境でもおおかた動きます。この名前は変えてしまって良いでしょう。「クイズ.exe」とか。プログラム内でこの名前の変更をするようにもできますが、割愛しておきます。

このことを応用すれば、RPGツクールの支援装置を自作することが可能となります。多用する機能があるならば、何か作っておいて損はないかもしれません。