GScripサンプル: Gプロセスについて(3/7)新しくsample2.gs を作成しました
それをコンパイルして実行させました。
P_SAMPLEとは別のGプロセスとして実行しています。
現在は3つのGプロセスが生成されています。
(1) boot.gs がソースの P_BOOT(始めに起動されるGプロセス)
(2) sample.gsがソースの P_SAMPLE
(3) sample2.gsがソースのP_SAMPLE2
です。
それぞれのVM(バーチャルマシン:仮想マシン)は独立して実行していて
グローバル変数領域は個別に確保されています
互いにはアクセスすることはできません
処理的にあまり、関係がないものはGプロセスを独立させてプログラムを組みます
例えば、ゲームとグラフィックエディッタとマップエディッタは、あまり関係がないのでGプロセスを別々に生成して実行しています。全く関係がないわけではなく、データのやり取りが必要になるので次の動画でGプロセス間でデータをやり取りする方法のサンプルを作ってみます
やり取りする方法は今のところ2つあります
a) ユニバーサル領域
b) P_FNC_CALL関数
です。ユニバーサル領域とはグローバル変数領域より上の領域です。テクスチャ、BGM,サウンドなどが該当します。これらはGプロセスで共有されていてアクセス可能だからです
P_FNC_CALL関数は、Gプロセスの名前を指定して関数を呼び出し可能です。