ゲーム制作日記<37> 畑システム2

op.png



みなさん、こんばんは。
ネコタです。



前回の畑システムの続きです。


前回は、コアとなる【畑】種選択の内容を詳しく解説しました。

【畑】種選択はどこのイベントに組み込まれていたかというと、

tc26-40.png

この赤枠の部分が、コアのイベントでした。
また、アイコンと、初回動作を兼ねています。
システム起動のための重要なイベントですね。

コアのイベントが1つ完成したら、それをCtrl+Cでコピーし、畑の敷地内にCtrl+Vで敷き詰めていきます。

どれか1つが起動すれば、全部同時にページが変わるように作っているので、これでコアは完成。

こんな調子で、とにかく1個作って、それを複製していく……
そうやって作業を効率化させています。





さて、今回は、各マップで行う処理についてですね。

各マップでは、左側にある黄色枠部分のもっさりしたイベント群と、緑枠の1つだけのイベントが畑システムの処理を担っています。


まずは、黄色枠部分のイベント群を見てみましょう。
イベントの画像は、1番左上のものです。


tc28-1.png

<実行内容>
変数の操作:#0125 【畑】栽培X座標 = このイベントのマップX
変数の操作:#0126 【畑】栽培Y座標 = このイベントのマップY
指定位置の情報取得:【取得情報】リージョン, リージョンID, ({【畑】栽培X座標},{【畑】栽培Y座標})
条件分岐:【取得情報】リージョン = 0
セルフスイッチの操作:B = ON

それ以外のとき
変数の操作:#0141 【畑】ID:1_成長状況 = 1
セルフスイッチの操作:A = ON

分岐終了



イベントトリガーは自動実行です。

出現条件として、スイッチ【畑】ID1:使用中の時にします。

このスイッチは後ほど出てきますが、このマップの畑を使用中にして、他の処理を行わせないようにするためのフラグです。

このスイッチがONの時は、このイベントが中心となって処理を行います。

内容としては、まず、このイベントのX座標Y座標変数に格納し、指定位置情報の取得で、このイベントが居る箇所のリージョンIDを読み取ります。

この処理についても後で説明しますが、このイベントは自動で指定されたリージョン(畑の上)に移動させられるイベントとなります。

しかし、条件分岐によりこのイベントが移動させられないことがあるため、この処理によって、まず「このイベントが畑の上にいるかどうか?」という判定を行っています。


リージョンID=0のとき、というのは、畑の上に乗っていないときです。その場合は、セルフスイッチBをONにして、後述するページに飛ばします。

リージョンIDがそれ以外のとき(といっても、設定した値しかありませんが)、畑の上に乗っているはずなので、セルフスイッチAをONにするとともに、変数【畑】ID1:_成長状況=1にして、ページを切り替えます。



tc28-2.png

<実行内容>
条件分岐:【畑】ID:1給水がOFF
コモンイベント:【会話】表示(左)
ピクチャの表示:#2, Alto_2, 左上 ({【画像】X座標},{【画像】Y座標}), (100%,100%), 0, 通常
ピクチャの移動:#2, 左上 ({【画像】X座標},{【画像】Y座標}), (100%,100%), 255, 通常, 20フレーム
文章:なし, ウィンドウ, 下
文章\n<アルト>「水をやれば、育ちそうだな。
選択肢の表示:水をやる, 何もしない (ウィンドウ, 右, #1, #2)
水をやるのとき
条件分岐:パーティが水を持っている
アイテムの増減:水 - 1
スイッチの操作:#0261 【畑】ID:1給水 = ON
コモンイベント:【会話】終了

それ以外のとき
文章:なし, ウィンドウ, 下
文章\n<アルト>「あ・\.・\.・\.\.
文章 水をもってねぇや。
コモンイベント:【会話】終了(フェード)

分岐終了

何もしないのとき
コモンイベント:【会話】終了

分岐終了

分岐終了


2ページ目が、指定したリージョンID(畑の上)に乗っているときに開かれるページです。

ここでは、を消費して作物を成長させるための処理を行います。

見かけ上、種がまかれたときは、このページに居る状態となります。
水が与えられるまでは、ずっとこのままです。


一度種を撒いたなら、最後まで責任をもって育てましょう。



tc28-3.png

<実行内容>
条件分岐:【畑】ID:1給水がOFF
コモンイベント:【会話】表示(左)
ピクチャの表示:#2, Alto_2, 左上 ({【画像】X座標},{【画像】Y座標}), (100%,100%), 0, 通常
ピクチャの移動:#2, 左上 ({【画像】X座標},{【画像】Y座標}), (100%,100%), 255, 通常, 20フレーム
文章:なし, ウィンドウ, 下
文章\n<アルト>「水をやれば、育ちそうだな。
選択肢の表示:水をやる, 何もしない (ウィンドウ, 右, #1, #2)
水をやるのとき
条件分岐:パーティが水を持っている
アイテムの増減:水 - 1
スイッチの操作:#0261 【畑】ID:1給水 = ON
コモンイベント:【会話】終了

それ以外のとき
文章:なし, ウィンドウ, 下
文章\n<アルト>「あ・\.・\.・\.\.
文章 水をもってねぇや。
コモンイベント:【会話】終了(フェード)

分岐終了

何もしないのとき
コモンイベント:【会話】終了

分岐終了

分岐終了


実は、内容は2ページ目と同じです。

2ページ目をコピペして、条件や画像をちょこちょこ変えればOKです。

条件の成長状況の数値によって、この段階に成長するまでの時間を設定できます。




tc28-4.png

<実行内容>
コモンイベント:【会話】表示(左)
ピクチャの表示:#2, Alto_2, 左上 ({【画像】X座標},{【画像】Y座標}), (100%,100%), 0, 通常
ピクチャの移動:#2, 左上 ({【画像】X座標},{【画像】Y座標}), (100%,100%), 255, 通常, 20フレーム
文章:なし, ウィンドウ, 下
文章\n<アルト>「お、収穫できそうだぜ。
選択肢の表示:収穫する, 何もしない (ウィンドウ, 右, #1, #2)
収穫するのとき
コモンイベント:【会話】終了
アイテムの増減:カンタリオン + 8
変数の操作:#0181 【畑】ID:1_種ID = 0
変数の操作:#0141 【畑】ID:1_成長状況 = 0
セルフスイッチの操作:A = OFF
スイッチの操作:#0221 【畑】ID:1使用中 = OFF
スイッチの操作:#0064 【畑】クリアタイム = ON

何もしないのとき
コモンイベント:【会話】終了

分岐終了


最終形態のページです。

ここまで成長すると、収穫できるようになります。


収穫されたら、使用していたスイッチやら変数やらをすべてリセットし、スイッチ【畑】クリアタイム=ONにします。

これをONにしないと、この下にあるコアのイベントが起動して、即座に種選択のメニューが出てきてしまいます。
忘れずに設定しておきましょう。



tc28-5.png

<実行内容>
条件分岐:【畑】ID:1使用中がOFF
セルフスイッチの操作:B = OFF

分岐終了
ウェイト:30フレーム


このページは、畑の上に行けなかった場合の分岐ページです。

畑が空くまで、ひたすらウエイトで待機状態にします。

畑が空いたら、セルフスイッチBを切って、もとに戻します。

(スイッチを切っただけでは最初のページの出現条件は満たせないため、実質的には一時消滅します)


ここまで見て頂いて気が付いたと思いますが、このイベントは、作物のイベントです。

あの黄色枠で囲った部分は、実は、すべて作物のイベントです(笑)

今回の設定では、畑に8個の種が撒かれるため、1種類の種につき同じイベントを8個用意する必要があります。

先ほどのイベントを1つ作ったら、それを必要な数だけコピペして複製しておきます。これで、ようやく1つの種イベントが完成です。

複数種類の種があったら、その種類の数だけ、同様にイベントを作ります。ただ、2種類目以降は比較的、簡単です。

先ほど作成したイベントをコピペし、名前や画像、出現条件、収穫後に増減するアイテムをちょちょっと手直しすれば完成。

そして、それをまた必要な分だけ複製。これの繰り返しで、どんどん作っていきます。



さて、これで種もできました。
起動用のイベントもできました。


ついでに、もう1つやっておくことがあります。

tc26-41.png


この画像のように、畑のある個所に適当なリージョンを敷いておいてください。

これから、このリージョンIDを使います。




それでは、最後に、緑枠部分のイベントを組み立てます。

tc28-6.png

<実行内容>
注釈:種の位置をリセットします。
イベントの位置設定:カンタリオン, (0,0)
イベントの位置設定:カンタリオン, (0,0)
イベントの位置設定:カンタリオン, (0,0)
イベントの位置設定:カンタリオン, (0,0)
イベントの位置設定:カンタリオン, (0,0)
イベントの位置設定:カンタリオン, (0,0)
イベントの位置設定:カンタリオン, (0,0)
イベントの位置設定:カンタリオン, (0,0)
イベントの位置設定:フラウラ, (0,0)
イベントの位置設定:フラウラ, (0,0)
イベントの位置設定:フラウラ, (0,0)
イベントの位置設定:フラウラ, (0,0)
イベントの位置設定:フラウラ, (0,0)
イベントの位置設定:フラウラ, (0,0)
イベントの位置設定:フラウラ, (0,0)
イベントの位置設定:フラウラ, (0,0)
イベントの位置設定:ペンサミエント, (0,0)
イベントの位置設定:ペンサミエント, (0,0)
イベントの位置設定:ペンサミエント, (0,0)
イベントの位置設定:ペンサミエント, (0,0)
イベントの位置設定:ペンサミエント, (0,0)
イベントの位置設定:ペンサミエント, (0,0)
イベントの位置設定:ペンサミエント, (0,0)
イベントの位置設定:ペンサミエント, (0,0)
イベントの位置設定:アヴェンダル, (0,0)
イベントの位置設定:アヴェンダル, (0,0)
イベントの位置設定:アヴェンダル, (0,0)
イベントの位置設定:アヴェンダル, (0,0)
イベントの位置設定:アヴェンダル, (0,0)
イベントの位置設定:アヴェンダル, (0,0)
イベントの位置設定:アヴェンダル, (0,0)
イベントの位置設定:アヴェンダル, (0,0)
イベントの位置設定:ベルコル, (0,0)
イベントの位置設定:ベルコル, (0,0)
イベントの位置設定:ベルコル, (0,0)
イベントの位置設定:ベルコル, (0,0)
イベントの位置設定:ベルコル, (0,0)
イベントの位置設定:ベルコル, (0,0)
イベントの位置設定:ベルコル, (0,0)
イベントの位置設定:ベルコル, (0,0)
イベントの位置設定:サリックス, (0,0)
イベントの位置設定:サリックス, (0,0)
イベントの位置設定:サリックス, (0,0)
イベントの位置設定:サリックス, (0,0)
イベントの位置設定:サリックス, (0,0)
イベントの位置設定:サリックス, (0,0)
イベントの位置設定:サリックス, (0,0)
イベントの位置設定:サリックス, (0,0)
イベントの位置設定:パドゥープ, (0,0)
イベントの位置設定:パドゥープ, (0,0)
イベントの位置設定:パドゥープ, (0,0)
イベントの位置設定:パドゥープ, (0,0)
イベントの位置設定:パドゥープ, (0,0)
イベントの位置設定:パドゥープ, (0,0)
イベントの位置設定:パドゥープ, (0,0)
イベントの位置設定:パドゥープ, (0,0)
コモンイベント:マップ範囲取得
注釈:選択されたIDの種を畑にまきます。リージョンIDを指定してください。
注釈:種を撒きたい箇所に、リージョンを敷いてください。
注釈:畑のセル数=移動残数となります。
注釈:ここで設定した数だけ、作物イベントが敷かれます。
注釈:▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
変数の操作:#0124 【畑】畑リージョン = 21
変数の操作:#0127 【畑】移動残数 = 8
注釈:▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
ループ
条件分岐:【畑】ID:1_種ID = 0
ループの中断

分岐終了
条件分岐:【畑】移動残数 = 0
ループの中断

分岐終了
指定位置の情報取得:【取得情報】リージョン, リージョンID, ({【畑】栽培X座標},{【畑】栽培Y座標})
条件分岐:【取得情報】リージョン = 【畑】畑リージョン
条件分岐:【畑】移動残数 = 1
条件分岐:【畑】ID:1_種ID = 152
イベントの位置設定:カンタリオン, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 153
イベントの位置設定:フラウラ, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 154
イベントの位置設定:ペンサミエント, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 155
イベントの位置設定:アヴェンダル, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 156
イベントの位置設定:ベルコル, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 157
イベントの位置設定:サリックス, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 158
イベントの位置設定:パドゥープ, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
変数の操作:#0127 【畑】移動残数 -= 1

分岐終了
条件分岐:【畑】移動残数 = 2
条件分岐:【畑】ID:1_種ID = 152
イベントの位置設定:カンタリオン, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 153
イベントの位置設定:フラウラ, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 154
イベントの位置設定:ペンサミエント, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 155
イベントの位置設定:アヴェンダル, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 156
イベントの位置設定:ベルコル, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 157
イベントの位置設定:サリックス, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 158
イベントの位置設定:パドゥープ, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
変数の操作:#0127 【畑】移動残数 -= 1

分岐終了
条件分岐:【畑】移動残数 = 3
条件分岐:【畑】ID:1_種ID = 152
イベントの位置設定:カンタリオン, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 153
イベントの位置設定:フラウラ, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 154
イベントの位置設定:ペンサミエント, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 155
イベントの位置設定:アヴェンダル, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 156
イベントの位置設定:ベルコル, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 157
イベントの位置設定:サリックス, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 158
イベントの位置設定:パドゥープ, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
変数の操作:#0127 【畑】移動残数 -= 1

分岐終了
条件分岐:【畑】移動残数 = 4
条件分岐:【畑】ID:1_種ID = 152
イベントの位置設定:カンタリオン, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 153
イベントの位置設定:フラウラ, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 154
イベントの位置設定:ペンサミエント, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 155
イベントの位置設定:アヴェンダル, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 156
イベントの位置設定:ベルコル, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 157
イベントの位置設定:サリックス, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 158
イベントの位置設定:パドゥープ, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
変数の操作:#0127 【畑】移動残数 -= 1

分岐終了
条件分岐:【畑】移動残数 = 5
条件分岐:【畑】ID:1_種ID = 152
イベントの位置設定:カンタリオン, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 153
イベントの位置設定:フラウラ, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 154
イベントの位置設定:ペンサミエント, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 155
イベントの位置設定:アヴェンダル, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 156
イベントの位置設定:ベルコル, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 157
イベントの位置設定:サリックス, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 158
イベントの位置設定:パドゥープ, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
変数の操作:#0127 【畑】移動残数 -= 1

分岐終了
条件分岐:【畑】移動残数 = 6
条件分岐:【畑】ID:1_種ID = 152
イベントの位置設定:カンタリオン, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 153
イベントの位置設定:フラウラ, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 154
イベントの位置設定:ペンサミエント, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 155
イベントの位置設定:アヴェンダル, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 156
イベントの位置設定:ベルコル, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 157
イベントの位置設定:サリックス, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 158
イベントの位置設定:パドゥープ, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
変数の操作:#0127 【畑】移動残数 -= 1

分岐終了
条件分岐:【畑】移動残数 = 7
条件分岐:【畑】ID:1_種ID = 152
イベントの位置設定:カンタリオン, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 153
イベントの位置設定:フラウラ, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 154
イベントの位置設定:ペンサミエント, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 155
イベントの位置設定:アヴェンダル, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 156
イベントの位置設定:ベルコル, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 157
イベントの位置設定:サリックス, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 158
イベントの位置設定:パドゥープ, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
変数の操作:#0127 【畑】移動残数 -= 1

分岐終了
条件分岐:【畑】移動残数 = 8
条件分岐:【畑】ID:1_種ID = 152
イベントの位置設定:カンタリオン, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 153
イベントの位置設定:フラウラ, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 154
イベントの位置設定:ペンサミエント, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 155
イベントの位置設定:アヴェンダル, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 156
イベントの位置設定:ベルコル, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 157
イベントの位置設定:サリックス, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
条件分岐:【畑】ID:1_種ID = 158
イベントの位置設定:パドゥープ, ({【畑】栽培X座標},{【畑】栽培Y座標})

分岐終了
変数の操作:#0127 【畑】移動残数 -= 1

分岐終了

分岐終了
条件分岐:【畑】栽培X座標 ≠ 【取得情報】マップ範囲X
変数の操作:#0125 【畑】栽培X座標 += 1

それ以外のとき
変数の操作:#0125 【畑】栽培X座標 = 0
条件分岐:【畑】栽培Y座標 ≠ 【取得情報】マップ範囲Y
変数の操作:#0126 【畑】栽培Y座標 += 1

それ以外のとき
変数の操作:#0126 【畑】栽培Y座標 = 0

分岐終了

分岐終了

以上繰り返し
条件分岐:【畑】ID:1_種ID = 0
スイッチの操作:#0221 【畑】ID:1使用中 = OFF

それ以外のとき
スイッチの操作:#0221 【畑】ID:1使用中 = ON

分岐終了
スイッチの操作:#0062 【畑】種まき = OFF



全部コピペしまくって作っているので、非常に分かりづらいですが。

同じ名前のものは連番のイベント(コピー)です。なので、ずらっと並んだイベントの名前は全て違うイベントIDです。


スクリプトを扱える方は、多分、スクリプトで記述してしまった方が早くてスッキリします。

多分ですよ?(スクリプトをよくわかっていないので)


私はスクリプトが分からなかったので、全部コマンドで打ち込みました。(コピペを駆使して)


さて、このイベントは何をしているかというと、種の位置を畑に移す処理をしています。

だから、最初に種を用意しておく必要があったわけです。


後から種を追加する場合には、面倒くさいですが、必要な箇所に足していってください。

同じような形がたくさん並んでいるので、適当なのをコピペして、それらしいところに貼り付けて、ちょいちょい変えればOKです(笑)



では、イベントの解説に入りましょう。


まず、最初にずらっと並んだイベントの位置指定ですが、これは、全ての作物(種)イベントを、リージョンIDが指定されていない適当な箇所に集めています。

次に、マップ範囲を取得し、任意のリージョンIDを指定種を撒く数を指定します。


以下はループ処理です。

最初の条件分岐:【畑】ID1_種ID=0というのは、種選択画面でキャンセルされた場合の処理です。撒く種がないので、ループを終了します。

次の条件分岐:【畑】移動残数=0というのは、全ての種を撒き終わった場合の処理です。もう撒けないので、ループを終了します。

その下は、まだ撒ける種がある状態なので、ここから、種を撒く処理が始まります。


まず、( 変数X 、 変数Y )のリージョンIDを読み取ります。

初期値は(0,0)となりますが、以降はどこにあるか分かりません。でも、気にしなくて良いです。必ず(0,0)から始めなければならないわけではないので。

そして、そこが畑として指定したリージョンIDの時、イベントを移動させる処理を行います。

【畑】移動残数=1の時【畑】移動残数=8の時までの処理がありますので、番号が若い順から作ってください。

移動残数は処理中に-1ずつしていくので、若い順から作っていけば、残数が変更されても他の条件分岐が動かなくなります。(逆にすると、一瞬で残数がなくなって終了し、1マスにしか移動されないので気を付けましょう)

で、条件分岐の中身は、種IDアイテム選択の処理で選ばれたアイテムIDの時に、それに該当する作物(種)イベントを1個選択し、(変数X変数Y)に持ってきます。

これを、全ての種についてコピペし、イベントIDやら条件分岐のIDやらを変更して、作成していきます。


全ての作物の分を作り終えたら、最後に変数の操作【畑】移動残数を-1します。



ここまで終わったら、大元の条件分岐:【畑】移動残数=1の時丸ごとコピーし、その下に貼り付けて、【畑】移動残数=2の時に変更します。

そして、作物イベントの箇所を同じ種類の別イベント(コピーイベント)に変更していきます。


この作業を、【畑】移動残数=最初に設定した数になるまでやっていきます。


正直、面倒くさいです。頑張ってください。



これで、取得したリージョンID=指定したリージョンID(畑の上)の時の処理ができました。


この条件分岐の外にあるのは、(変数X変数Y)を移動させる処理です。


条件分岐:【畑】栽培X座標 ≠ 【取得情報】マップ範囲X
変数の操作:#0125 【畑】栽培X座標 += 1

それ以外のとき
変数の操作:#0125 【畑】栽培X座標 = 0
条件分岐:【畑】栽培Y座標 ≠ 【取得情報】マップ範囲Y
変数の操作:#0126 【畑】栽培Y座標 += 1

それ以外のとき
変数の操作:#0126 【畑】栽培Y座標 = 0

分岐終了

分岐終了



私のブログを読んでいた方なら分かるかと思いますが、これ、同じ形が無限ミミックシンボルエンカウントにもありました。

この処理は、マップを端から1マスずつ調べていく処理になります。

全く同じことをやっていますので、詳しくは上のリンクを参考にしてください。


このループ処理により、種をすべて並べ終えるまで処理を行い続けます。

どこかでミスすると、無限ループに陥ったり、変な箇所が空いたりしますので、気を付けてください。



そして、最後に条件分岐で【畑】ID1_種ID=0かどうかを見ておきます。

【畑】ID1_種ID=0でない時は、何かしか種が選択されているときなので、【畑】使用中=ONにします。


そして、自分自身のスイッチを切って処理終了です。



この作物(種)イベント移動処理は、最初の【畑】種選択の中にあるスイッチの操作:種まき=ONにより、起動されます。

流れとしては、

 コモンイベント:【畑】種ID取得処理
アイテム選択の処理:【畑】種ID, 隠しアイテムB
コモンイベント:【畑】種ID取得後処理
コモンイベント:【畑】種まき準備
スイッチの操作:#0062 【畑】種まき = ON
作物(種)イベント移動処理
→作物(種)の育成開始

となるわけです。



また、このイベントが別途用意されていて、種IDをマップ用に格納しておいたのは、もう1つ理由があります。

種の移動処理を行いましたが、マップを出ると、イベントの位置が初期化されてしまいます。

そうすると、戻ってきたときには畑の作物があらぬところに生えている……という事態が起きます。


それを防ぐために、マップに入ると同時に、スイッチの操作:種まき=ONを行ってください。


そうすると、マップ用に記憶していた種IDを利用して、種まきイベントが勝手に畑の上に作物(種)イベントを敷き詰めておいてくれます。

スイッチ1つで手軽に場所記憶させるためのイベントでもあるわけです。



これで、畑イベントの配置までが終わりました。
やっとです(笑)


これを、畑を増やす度にやらなきゃいけないのですから、結構シンドイです。

早めに手を打つとしたら、イベントIDが同じになるように、作っておくと良いでしょう。

例えば、マップを作製したら、ストーリーなどに必要なイベントの前に、畑用イベントを先に並べちゃう、など。

イベントIDが同じであれば、全てのイベントを順番にコピペして、変数をちょちょっと変えれば完了です。


予め、ID○~○番は畑用と決めておいて、空イベントを複製するなどしてIDを調節した方が、コピペしてイベントIDをいじくるよりはるかに楽な気がします。


また、イベント移動の処理はスクリプトで出来るよ~、という方が居ましたら、教えてください

コピペで困るのはイベントIDが関わってくる部分だけなので、ここをスクリプト処理で数字をちょこちょこ変えるだけで出来るのであれば、だいぶ楽な気がします。


ついでに、スクリプトを使えるなら、これをプラグイン化してください(笑)

私が、そのプラグインを使わせていただきます(笑)



それでは、次回は作物の成長に関わる部分を解説させていただきます。

ほんとに、このシステムを導入するのは大変です(笑)




ではでは、今日はこの辺で。
ネコタでした。





↓お役に立ちましたら、クリックをお願いします↓
にほんブログ村 ゲームブログへ
にほんブログ村

にほんブログ村 ゲームブログ ゲーム制作へ
にほんブログ村

ブログランキング・にほんブログ村へ
にほんブログ村
スポンサーサイト

コメント

Secret

No title

超大作おつかれさまです。
次はいよいよ成長と収穫ですか。
ここでタイマーを用いることでどう処理がなされるのか興味ありです。
さて、たとえば「謎の種」をまき、
収穫時は乱数を用いてランダムに収穫物が変わるのも面白そうですが、しかしこれやると4部作になりますな(笑)
またきます。

Re: No title

収穫時だけだったら、処理は簡単ですよー。
新しい変数に乱数を突っ込んで、それで条件分岐を組めばいいんです。

頑張ってください。
プロフィール

猫民のんたん

Author:猫民のんたん

ネコタ:ゲーム作りが趣味の薬剤師。本職とゲーム作りの2足の草鞋を履きこなそうと日々奮闘。

毎週曜日と曜日or曜日に更新予定。


ミノン:ゲーム作り初心者で1児の母。前職はSE/PG。子育てをしながらゲーム作りを行おうと、日々奮闘中。

毎週曜日にブログ更新予定♪

最新記事
最新コメント
月別アーカイブ
カテゴリ
フリーエリア
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR