“RUN” それは魔法の言葉

私とコンピュータの思い出を、だらだらと綴ります。

94.HSPでゲーム&ウォッチのヘルメットを作ろう その12

最後はおまけ。
Windowsで開発していながら、Windowsで動くexeファイルの生成を一度もしたことがなかったので、練習がてらexe化にチャレンジした。

exe化するだけなら簡単。スクリプトエディタで、「実行ファイル自動作成」のメニューを選ぶだけ。
しかし、そのままexeファイルにしても、同じフォルダに、プログラム内で使っている画像と音声ファイルが存在しないとエラーになる。
それに、アプリケーションのウィンドウサイズが、hsp3dish.iniファイルの記述通りにならず、小さいサイズになってしまう。

この問題を解決するために、今動いているプログラムの冒頭に、ファイルをパッケージングするための記述を追加していった。

まず、exeファイル名。#packopt name で、ファイル名を指定できる。
ウィンドウサイズは、#packopt xsizeと、#packopt ysizeで指定すればいい。

読み込んで使用しているファイル群は、#pack "ファイル名" で書いて行く。暗号化してパッケージする#epack も用意されているらしいが、今回は特に不要なので、そのまま追加する、#packで書いて行った。
ファイルの保存先パスにサブフォルダがある場合は、サブフォルダのパスまで記述すれば、フォルダ階層も作成できるみたい。
ただ、今回のゲーム&ウォッチ再現では、ファイル数も少なく、全部同じ階層に保存しているので、ファイル名だけ羅列していった。

しかし、落とし穴がここにあった。(ちゃんと制限事項に書いてあるのだがw)
ファイル名が12文字以内でないと、exeを実行すると、エラーになる。
画像のファイル名は、helmet_xxx.png みたいに、ヘルメットで使っていることがわかるようにしていたが、軒並み12文字を超えてしまい、エラーになった…
元のファイル名から、接頭辞のhelmet_を全部取ってしまい、12文字以内のファイル名に変更して、無事単独のexeファイルで動くようになった。

#packopt name "helmet"
#packopt xsize 1015		; 横サイズ
#packopt ysize 671		; 縦サイズ

#pack "body.png"
#pack "player.png"
#pack "tool1.png"
#pack "tool2.png"
#pack "tool3.png"
#pack "tool4.png"
#pack "tool5.png"
#pack "door.png"
#pack "missmark.png"
#pack "digitalfont.png"
#pack "miss.png"
#pack "gamemode.png"
#pack "mralarm.png"
#pack "bgm.wav"
#pack "door.wav"
#pack "miss.wav"
#pack "missclear.wav"

これだけ記述を追加しなくてはならず、HSP3DishでAndroidアプリにしたときに影響すると嫌なので、新しいフォルダを作って、hspファイル、中で使用しているファイルをすべてコピーした後、別物のファイルとして作るようにした。
同じソース内で、パッケージの記述でOSごとに分岐できるんだろうけど、調べて苦労するよりも分けた方が早いww

あとはexeファイルのアイコン画像が、HSPお決まりのスープカップの画像になる。
このアイコンを変更するためのユーティリティ「Let's HSPIC!」があった。ほんと長年使われている言語、開発環境だけあって、誰かが何かツールを作ってくれている。ありがたい。
アイコンは、icoファイルを事前に作成しておく。画像の加工に使っているフリーソフトGIMPでは、icoファイルへのエクスポートもできるので、作業員と工具の部分を切り出して、アイコン画像にした。
四角く枠を作って、元の筐体のように紫系の色を付けた。
出来たのがこれ。

f:id:CORO3:20210603003245j:plain

配布するわけじゃないけど、アプリになったーって実感は得られるね。

ここまで作った後に、すでにHSP3.5で、アイコンの埋め込みに対応していたことを知ったw
#packopt icon "アイコン.icoを書いておいて、自動作成するだけだったww
かくして、ファイアも同じ要領でexe化したのだった。