−第四回「アイテムについて」−

 第四回は、アイテムについて説明します。アイテム関係の機能を使わなくても、変数の使い方を工夫することで同じことは出来るのですが、使った方がよりわかりやすく記述出来ますので、覚えておいて損はないと思います。
 さて、いつものように、以下のスクリプトを見てください。


*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
 
  1. アイテムの宣言と初期化
     「*ITEM」から「*ITEMEND」までは、アイテムの宣言と初期化をあらわします。この例では、取り扱うアイテムに「メモ」と「ノート」があることを宣言し、それぞれの所有個数を0に初期化しています。アイテムを増やしたいときは、このアイテムの宣言に追加することになります。書式は「アイテム名 所有個数」です。
     また、所有個数を0以外にすることで、最初からそのアイテムを所有している事になります。
     
  2. アイテムの取得
     「*GETITEM アイテム名」で、指定したアイテムの取得ができます。具体的には、アイテムの所有個数を1に設定しています。
     
  3. アイテムの一覧表示
     「*ITEMLIST」命令を使うと、現在所有しているアイテムの一覧を表示出来ます。所有個数が一個以上のアイテムがすべて表示されます。例では「持ち物」あるいは「アイテム」と入力することで、アイテム一覧を表示出来ます。
     
  4. アイテムの所持判定
     前回解説したIF文により、アイテムを所有しているかどうかを、アイテム変数によって判断しています。アイテム変数とは「I(アイテム名)」という形式で表現される特殊な変数で、「I(アイテム名)」とした場合、アイテム名で示したアイテムの所有個数が入っています。
     例では「I(メモ)!=0」となっており、メモの所有個数が0以外(つまり、アイテムを持っている場合)でIF文の条件が成立します。そのため、アイテムを持っている場合はラベル「MEMO_NAI」にジャンプして「何もありません」と表示し、持っていない場合(I(メモ)がゼロの場合)は「メモが落ちています」と表示しています。

     また、アイテム変数も普通の変数の一種なので、演算が可能です。たとえば「*I(リンゴ)+=1」とすれば、アイテム「リンゴ」の所有個数を一個加算出来るというわけです。
     よって、前述の「*GETITEM メモ」は「*I(メモ)=1」(メモの個数を1にする)と書いたのと同じ意味なのですが、個数に意味のあるアイテム以外は、わかりやすさを重視して「*GETITEM」を使用した方がいいでしょう。
     
  5. 4と同様に、アイテムの所有判定を行っています。持っていない場合はIFの下がそのまま実行され、*GETITEMでアイテムを取得し、*ENDで処理終了、持っている場合はラベル「ITEM_MOTTERU」にジャンプして「既にメモは持っていますよ?」と表示されます。

 以上、アイテムについて解説しました。ちなみにBLACK DIAMOND 0.36までのバージョンでは「*ITEMLIST」で所持アイテムを表示した場合、現在所持個数が表示されません。これに関しては、今後対応したいと思います(すっかり忘れていました)。
 アイテムがなくてもゲームは作れますが、あればそのぶんゲームに広がりが出来ます。アイテムの個数に制限はありませんので、様々なアイテムでゲームの世界を彩ってみてくださいね。

 bar10_white.gif

[前の講座][目次][次の講座]

Copyright 2001-2002 ONODA Production/Youjiro BLACK ONODA