Libraryの使用
ここではLibraryの導入方法を紹介します。
Libraryについて
全MAPで共通に使用したいScriptや関数をそれぞれのMAPのScriptに挿入せずにLibraryというMAPとは独立した形で作り、それぞれのMAPのScriptからそれを引き出してくるということができます。
導入方法
まず、普通のScriptと同じようにOファイルに変換します。ここで、変換する前に次の単語を先頭に付け足してきましょう。
例:libraryとなるACSファイルの内容
#library "○○"
#include "zcommon.acs"
//Libraryの内容
○○には現在編集しているACSファイルの名前を書きましょう。(○○Libなどがわかりやすいと思います。Libraryの名前は8文字以内にしてください。)
これができたらOファイルに変換しますが、Save BEHAVIORは使用しません。
次にMAP編集画面に戻り、F7キーを押してDeePsea-Manage
Lumps,Textures,Sprites&Graphicsを出しましょう。
そしてMerge-import any
filesをクリックします。すると次のような画面が出ます。
ここで、OファイルをWADファイルに挿入します。
Target側の項目にあるopenから先程作ったLibraryを挿入したいWADファイルを選択し、Importの項目にあるAddから先程変換したOファイルを選択します。
Target側の項目にあるSaveでWADファイルの中に挿入しましょう。
次に何でも良いのでTarget側に表示されているLumpファイルを選択して、Target側のInsertをクリックして下さい。
名前を入力しなければならないはずなのでA_STARTと入力してOKをクリックして下さい。
すると中身が何も無いA_STARTというLumpファイルができたはずです。
同様にA_ENDも作って下さい。(これらはWADファイル内の仕切りの役目を果たしています。)
また、ここで、上の画像のようにA_START→○○Lib→A_ENDの順番になっていない場合はTarget側の項目にあるMoveの項目で順番を変えましょう。変え終わったらTarget側の項目にあるSaveで変更を保存できます。
※注意・・・Import側で選択したファイルが残っている時に順番を変える場合は、Importの項目にあるClearをクリックし、消去しておきましょう。Lumpファイルが残っていると、それが挿入されてしまいます。
これでLibraryの挿入は終了です。
では、ゲームが始まると"Test"と表示されるLibraryを使ったScriptを作ってみましょう。
testLib.ACSの内容
#library "testlib"
#include "zcommon.acs"
Script 999
Enter
{
print(s:"test");
}
ここで使われたScript番号は以後このLibraryを使用するScriptでは使用できなくなってしまいます。
これを先程紹介した挿入方法で挿入しましょう。
また、1面でこのLibraryを使いたい場合(Script01.ACSを使用するとします)は
Script01.ACSの内容
#import "testLib.acs"//Libraryの名前
#include "zcommon.acs"
これを入力したらScriptを挿入する方法で挿入し、テストプレイしてみましょう。ゲームが始まって"Test"と表示されれば成功です。
ちなみに、libraryの中に(void)型のScriptを宣言しておくと、そのlibrayを使用しているACSにおいて、その実行したいScriptの番号を指定するだけでScriptを実行することができます。
ちなみに、libraryで繋がっているACS同士でMapScopeの変数を共有することができます。
ここで、functionをlibrayの中に入れることができます。
libraryにfunctionを入れる利点として
・使用したいMAPごとで同じfunctionを定義しなくて良い
・使用したいACSの先頭にimport文を持ってくるので、そのACSではどこの行でもfunctionを使用できる。
などがあります。
では、実際にfunctionをlibraryの中に入れてみましょう。
//testLib.ACSの内容
#library "testlib"
#include "zcommon.acs"
//ACSの構造でも紹介したように、絶対値を求める関数です。
function int abs (int x)
{
if (x < 0)
return -x;
return x;
}
//Script01.ACSの内容
#import "testLib.acs"
#include "zcommon.acs"
Script 1
ENTER
{
int a = abs(-3);
int b = abs(4);
print(s:"a is ",d:a,s:" b
is ",d:b);
}
このScriptを挿入し、ゲームを開始すると"a is 3 b is 4"と表示されれば成功です。
これで、Libraryの使用の解説は終了です。
次に、LOADACSの使用へ進んで下さい。