
−第四回「アイテムについて」−
第四回は、アイテムについて説明します。アイテム関係の機能を使わなくても、変数の使い方を工夫することで同じことは出来るのですが、使った方がよりわかりやすく記述出来ますので、覚えておいて損はないと思います。
さて、いつものように、以下のスクリプトを見てください。
*ITEM ←1 メモ 0 ノート 0 *ITEMEND
*SCENE
IE
>見る *IF I(メモ)!=0 MEMO_NAI ←4 メモが落ちています。 *END *LABEL
MEMO_NAI 何もありません。
>取る メモ *IF
I(メモ)!=0 MEMO_MOTTERU ←5 *GETITEM メモ ←2 メモを取りました! *END *LABEL
MEMO_MOTTERU 既にメモは持っていますよ?
>持ち物/アイテム *ITEMLIST ←3
*SCENEEND |
- アイテムの宣言と初期化
「*ITEM」から「*ITEMEND」までは、アイテムの宣言と初期化をあらわします。この例では、取り扱うアイテムに「メモ」と「ノート」があることを宣言し、それぞれの所有個数を0に初期化しています。アイテムを増やしたいときは、このアイテムの宣言に追加することになります。書式は「アイテム名
所有個数」です。
また、所有個数を0以外にすることで、最初からそのアイテムを所有している事になります。
- アイテムの取得
「*GETITEM アイテム名」で、指定したアイテムの取得ができます。具体的には、アイテムの所有個数を1に設定しています。
- アイテムの一覧表示
「*ITEMLIST」命令を使うと、現在所有しているアイテムの一覧を表示出来ます。所有個数が一個以上のアイテムがすべて表示されます。例では「持ち物」あるいは「アイテム」と入力することで、アイテム一覧を表示出来ます。
- アイテムの所持判定
前回解説したIF文により、アイテムを所有しているかどうかを、アイテム変数によって判断しています。アイテム変数とは「I(アイテム名)」という形式で表現される特殊な変数で、「I(アイテム名)」とした場合、アイテム名で示したアイテムの所有個数が入っています。
例では「I(メモ)!=0」となっており、メモの所有個数が0以外(つまり、アイテムを持っている場合)でIF文の条件が成立します。そのため、アイテムを持っている場合はラベル「MEMO_NAI」にジャンプして「何もありません」と表示し、持っていない場合(I(メモ)がゼロの場合)は「メモが落ちています」と表示しています。
また、アイテム変数も普通の変数の一種なので、演算が可能です。たとえば「*I(リンゴ)+=1」とすれば、アイテム「リンゴ」の所有個数を一個加算出来るというわけです。
よって、前述の「*GETITEM
メモ」は「*I(メモ)=1」(メモの個数を1にする)と書いたのと同じ意味なのですが、個数に意味のあるアイテム以外は、わかりやすさを重視して「*GETITEM」を使用した方がいいでしょう。
- 4と同様に、アイテムの所有判定を行っています。持っていない場合はIFの下がそのまま実行され、*GETITEMでアイテムを取得し、*ENDで処理終了、持っている場合はラベル「ITEM_MOTTERU」にジャンプして「既にメモは持っていますよ?」と表示されます。
以上、アイテムについて解説しました。ちなみにBLACK DIAMOND 0.36までのバージョンでは「*ITEMLIST」で所持アイテムを表示した場合、現在所持個数が表示されません。これに関しては、今後対応したいと思います(すっかり忘れていました)。
アイテムがなくてもゲームは作れますが、あればそのぶんゲームに広がりが出来ます。アイテムの個数に制限はありませんので、様々なアイテムでゲームの世界を彩ってみてくださいね。

Copyright 2001-2002 ONODA Production/Youjiro BLACK
ONODA