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の使用へ進んで下さい。


Home Back