HSPでファイルを分けると作業が楽になる


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

HSPでファイルを分けると作業が楽になる


HSPでゲームを作るとき、ゲーム内の大きな工程ごとにソースを書いたファイルを分けておくと、プログラムが少し見やすくなる。
このページは、HSPで#include命令を使って各ソースファイルを分けておけるようにする方法が載っているよ。

例えば、育成と戦闘を繰り返すようなゲームの場合で、下のフローチャート画像みたく工程がいくつかおおまかに分かれているとしたら。
全部のプログラムを一つのファイルに書こうとすると、とても行数が多くなる上に、どの行にどの工程のプログラムが書かれているか
判りづらくなってしまう。

(工程が多くて一つのファイルでは大きくなり過ぎてしまいそうなフローチャート)


その問題を解決しつつ、どの工程がどこのプログラムで行われているか直感でわかりやすくするためには、「大まかな工程ごとにファイルを
分割してしまう」というのをやる。これをするとHSPでもプログラムの見やすさが断然変わってくるのだ。

上のフローチャート画像では、メインパート、LV上げパート、街パート、戦闘パート、イベントパート、エンディングパートと分かれている。
この大まかな工程を、各ファイルごとに分けて書いておく。メインパート用のmain.hspとか、戦闘パート用のbattle.hspとか、イベントパート用のevent.hspとかいう風に。

(工程ごとにファイルが分かれているソースたち)


そして、それぞれのファイルに各工程で動かすべきプログラムを書いていく。画像はわかりやすくするために階段重ねで表示しているが、
現在のHSPではタブ表示ができるので、ファイルがたくさん分割されていても1画面内に収めることができるよ。

(各データの中身)


プログラム的にはここから説明するところが一番重要になる。
このままではバラバラなデータファイルたちを、いざ「#include」命令を使って一つのプログラムに変えてやるのだ。

#include "hspファイル名" という一行をプログラムに書いてやると、指定したファイルに一時的に移動して、そのファイルに書かれたプログラムを実行することができる。下の画像の感覚でわかるだろうか。

(#includeのイメージ)


この命令を、「大元の実行用HSPファイル」を作って書き記しておくと、全てのファイルをひとまとめにすることができる。

(最高実行ファイル)

上の画像ではそれぞれの工程をラベルで区切ってinclude命令を使っているので、例えば戦闘パートにいきたいなら*battleのラベルに飛べば戦闘パートが書かれた別ファイルをinclude命令で実行する、ということができるようになっている。

・・・ちなみに本当のところはこの命令は「一旦他ファイルに移動」ではなく、コンパイル実行時に全ファイルを結合ということをしているのだけど、コンパイル風景は目に見えるものじゃないので深く考えなくてもいいように思う。



このやり方の問題点は、どんなに別ファイルになっていても変数やバッファは共通なので、間違って別ファイルで既に使われている変数を他のファイル内で知らずに上書きしてしまうという危険があるというところ。
なので、ファイルの分割と同時に変数などの管理をちゃんと把握しておく必要がある。
でもそれさえきちんとできていれば、一つ一つのプログラムが長ったらしくなってどこに何があるかわからなくなるということが防げるし、エラーが起きた場合も、どの工程で起きたエラーかによってどのファイルに問題があるかすぐわかるので、とても便利な機能として使えると思う。
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。