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

ステージ1「押せるタルとツボ壊し」

今回は前回提示した3ステージの1ステージ目を解説します。


●再掲「ステージ1の概要」

   (このステージ画像は全景が映る位置に無理やり移動させたもので、ゲームとしては左側から入ります)

   「押せるタルを動かして全部のツボを壊す」ステージです。
   「押せるタル」は調べると1マス動かすことができ、「ツボ」を調べると壊すことができます。
   「ツボ」を全て壊すとクリアとなり、「ツボの称号」(アイテム)が与えられます。
   「押せるタル」は 第16回 、「ツボ」は 第9回 、 第13回 、 第20回 を参考にすると良いでしょう。


●クリアアイテム「ツボの称号」の追加
   データベースエディターからクリア時に増やすアイテム「ツボの称号」を追加しておきます。
   追加方法は 第20回 を参考にしてください。(説明文は適当でOKです)


●「押せるタル」の内容
   たくさん配置されている「押せるタル」の内容は以下の画像の通りです。
   こういった「同じものがたくさん必要」な時は1個本体を作成し、
   後は 第8回 でやったように「イベントインスタンスを増やす」方法を使うと後から編集する時に便利です。



   基本的には以前作った「押せるツボ」と同じものですが、
   「押せるツボ」の速さだとこの数を押して動くには遅すぎるため、
   「移動時間」の部分を64フレームから32フレームと倍の速さにしています。


●「ツボ」の内容
   調べると壊せるツボは以下の3つの機能を持つ必要があります。
      ・壊したツボの数を数える
      ・壊したツボは消去する
      ・全部のツボを壊したら「ツボの称号」を配る

<  1>
<  2>
<  3>
<  4>
<  5>
<  6>
<  7>
<  8>
<  9>
< 10>
< 11>
< 12>
< 13>
< 14>
< 15>
< 16>
< 17>
< 18>
< 19>
< 20>
< 21>
< 22>
< 23>
< 24>
< 25>
< 26>
< 27>
< 28>
//ゲーム変数[マップ一時整数]の取得 (ゲーム変数名,デフォルト値)
Integer breakcnt=GetMapInt('#壊したツボの数',0);

breakcnt++;

//メッセージの表示(待機,消去する) (表示内容)
ECL::WaitLastMessage(
   
"@d個目のツボを壊した!
   あと@d個だ!"
,breakcnt,6-breakcnt);

//ゲーム変数[マップ一時整数]の設定 (ゲーム変数名,設定値)
SetMapInt('#壊したツボの数',breakcnt);

//ゲーム変数[インスタンス整数]の設定 (ゲーム変数名,設定値)
SetInstanceInt('ツボ壊れた',1);

if(breakcnt==6){
   
   
//メッセージの表示(待機,消去する) (表示内容)
   
ECL::WaitLastMessage(
      
"全部のツボを壊した!
      ツボの称号を入手!"
);
   
   
//アイテムを入手する (アイテムID,個数)
   //入手するアイテム:ツボの称号
   @@pdb_item.AddItemCount(4,1);
   

   ここでゲーム変数に「マップ一時」「インスタンス」分類を使用することにより、
   F7キーから実行できるデバッグコマンド「マップリロード」で進行状態をリセットできるようになります。

   なおこれだとクリア後にリセットすることによりツボの称号をいくらでも入手できますが、今回は気にしないことにします。
   気になる場合は「マップ」分類のゲーム変数にクリア状態を記録して分岐するなどで対応しましょう。
   
   また、イベント状態条件に「ゲームインスタンス整数「ツボ壊れた」が1以外」として、
   一度調べたらイベント状態条件が不成立になるようにしておきます。
   こうすることで、「調べたらツボが消える」という動作になります。




   後はこの二つのイベントのイベントインスタンスを増やして既定の位置に配置していくだけです。
   なお、このゲームは単純ながら意外と難しいので、クリア時の状態画像を置いておきます。
   (自力でやりたい人のために、クリックした場合だけ表示するようにしておきます)
   



(ここをクリックしてクリア画像を表示)






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

最終更新 2017/12/19