×

[PR]この広告は3ヶ月以上更新がないため表示されています。
ホームページを更新後24時間以内に表示されなくなります。

Libraryの使用

ここではLibraryの導入方法を紹介します。
※第2版とほぼ同じ内容です。


Libraryについて

全MAPで共通に使用したいScriptや関数をそれぞれのMAPのScriptに挿入せずにLibraryというMAPとは独立した形で作り、それぞれのMAPのScriptからそれを引き出してくるということができます。

Libraryの導入

まず、普通の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番号(999)は以後このLibraryを使用するScriptでは使用できなくなってしまいます。

これを先程紹介した挿入方法で挿入しましょう。

また、1面でこのLibraryを使いたい場合(Script01.ACSを使用するとします)は


Script01.ACSの内容

#import "testLib.acs"//Libraryの名前
#include "zcommon.acs"


とします。
#import "testLib.acs"
の部分をimport文と呼ぶことにします。

これを入力したらいつも通りACSをMAPに挿入し、テストプレイしてみましょう。ゲームが始まって"test"と表示されれば成功です。

ちなみに、libraryの中に(void)型のScriptを宣言しておくと、そのlibrayを使用しているACSにおいて、その実行したいScriptの番号を指定するだけでScriptを実行することができます。
その10でも述べたように、libraryで宣言したMap Scopeの変数は、そのlibraryを使用したACSでも宣言なしに使用することができます。


Libraryに関数を入れる

関数をlibrayの中に入れることができます。
libraryに関数を入れる利点として
・使用したいMAPごとで同じ関数を定義しなくて良い
・使用したいACSの先頭にimport文を持ってくるので、そのACSではどこの行でもfunctionを使用できる。
などがあります。

では、実際に関数をlibraryの中に入れてみましょう。


//testLib.ACSの内容

#library "testlib"
#include "zcommon.acs"

//その7でも紹介したように、絶対値を求める関数です。
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となるACSには

#library "○○"
#include "zcommon.acs"

//Libraryの内容を書く。

と書き、Libraryを使用するACSの先頭には

#import "○○.acs"
//Libraryの名前
#include "zcommon.acs"

と書く。

・LibraryとなるACSファイルの名前は8字以内にする。

・LibraryとなるACSファイルは、MAPに挿入せず、WADファイルに挿入する。

・Libraryで宣言されたScriptや関数を、Libraryを使っているACSでは宣言なしに使用することができる。

・Libraryに使用回数の多い関数を宣言しておくと色々と便利。


Home Back Next