[前へ] [目次へ] [次へ]

アイテムを使った処理を作ってみる

今回は手持ちのアイテムを選択して分岐する処理を作ってみます。
これは例えば、謎解きで手持ちのアイテム一覧から選択して正解を選ばせるといった用途に使えます。


●データベースにアイテムを設定する
   まず処理で使うアイテムを3種類追加します。

   ゲームデータベースエディターを開きます。


   編集するデータベースを「アイテム」にします。




   「要素追加」を押します。


   追加された要素が選択されたことを確認して、アイコン選択ボタンを押します。


   いつもの要領でアイコンをダブルクリックして選択します。


   アイテムの内容を設定したら、もう一度「要素追加」を押します。


   同じ要領で残り二つのアイテムを設定します。




   これでアイテムが追加できたのでデータベースエディターを閉じます。


●プレイヤーにアイテムを配る
   ゲーム開始時はプレイヤーはアイテムを一切持っていません。
   そのままでは選べないので、アイテムを配るためのイベントを作成します。


   適当にグラフィックとメッセージを設定したら、コマンドの挿入から「アイテム所持数の増減」を選びます。


   表示されているアイテムリストからアイテム1を選び決定します。


   続けてアイテム2、アイテム3も増やすように設定し、以下のような感じにします。



●アイテムを選択させる
   アイテムを選ぶ処理を行うイベントを作成します。


   適当にグラフィックを設定したら、アイテム2を選ぶようメッセージを入力します。
   そしてコマンドの挿入から「アイテムを選択させる」を選びます。


   受け取る変数式のところに「 Integer itemid 」と書きます。
   受け取る変数式にはプレイヤーが選択したアイテムのアイテムIDを格納するローカル変数を指定します。
   ここで画像のように型名から書くとローカル変数の定義も同時に行うことができます。


   これでゲーム実行時にアイテム選択肢が表示され、その選択結果が itemid に取得されます。
   次に、選択されたアイテムが目的の「アイテム2」だったかを比較します。
   この比較のためには「アイテム2」のアイテムIDが必要なので、
   補助コマンドウィンドウの「データベースIDの検索」を使ってアイテムIDを調べます。


   ここで表示される検索窓では、各データベースのIDと名前の一覧を見ることができます。
   また、絞込ボタン(事前に設定したフィルタを使う)やその右の検索窓に名前を打ち込むことで、
   データベース内を検索することができます。


   上記の機能により、「アイテム2」のIDが2であると確認できたので、2と比較します。
<  1>
<  2>
<  3>
<  4>
<  5>
<  6>
<  7>
<  8>
<  9>
< 10>
< 11>
< 12>
< 13>
< 14>
< 15>
< 16>
< 17>
< 18>
< 19>
< 20>
< 21>
< 22>
//メッセージの表示(待機,消去する) (表示内容)
ECL::WaitLastMessage(
   
"アイテム2を選ぶのだ。");

//アイテムを選択させる (キャンセルは-1、それ以外はアイテムIDを返す)
Integer itemid=ECL::WaitItemSelect();

//選んだアイテムIDと調べたIDを比較する
if(itemid==2){//アイテム2
   
   //メッセージの表示(待機,消去する) (表示内容)
   
ECL::WaitLastMessage(
      
"そう、これなのだ。");
   
}
else{
   
   
//メッセージの表示(待機,消去する) (表示内容)
   
ECL::WaitLastMessage(
      
"違うのだ、これではないのだ。");
   

   実行して確認してみましょう。
   まず即座に机を調べると、アイテムを持っていないので何も選べません。
   (この場合でもキャンセルキー(キーボードのEsc/X)でキャンセルはできます)


   ツボを調べてアイテムを入手してから机を調べると今度はアイテムが表示されます。
   アイテム2を選んだ場合だけ反応が変わることを確認してみてください。




[前へ] [目次へ] [次へ]

最終更新 2017/10/17