こんにちは。ひらひさです。
雪が降りましたね。積もった雪を見るとわくわくします。
今回も、イベントを作っていきます。今回のイベントで最後になります。
イベントの説明
今回主に使うマップです。
前回のイベントによって、新しい場所に行けるようになりました。今回は、その新しい場所で発生するイベントです。まず、左上のマップにいる人に話しかけます。
海で遊んでたら流されちゃったみたいです。家に帰りたいけどお腹が空いてて動けないようなので、食料を持ってきましょう。
食料は、以前助けたキャンパーからもらいます。
食料を貰えました。依頼主に私に行きましょう。
おいしいものを食べて動けるようになりました。海辺の村出身みたいなので、向かいましょう。
これから、キャラクターの後ろを依頼主が付いてくるようになります。
海辺の村には最初のマップの上から行きます。
村につきました。すぐ近くにいる人に話しかけましょう。
無事に連れてくることができました。
イベントが終わりました。これで、このゲームはクリアになります。
プログラムの説明
では、このイベントを進めるプログラムを見ていきましょう。
イベントが発生するプログラムは前回までの記事と同様です。
989~1007行目が、mpt63の時に発生する動作です。今回の場合、流された人が対象です。
最初に話しかけたときは、991~997行目のif文が真になります。
992行目でflagKids1をtrueにしています。これによって、人助けイベントが開始します。
キャンパーから食料をもらうときのプログラムです。依頼主に話しかけたことで、flagKids1がtrueになるので、749~753行目のelse if文が真になります。
750行目でflagKids21がtrueになります。これで、プログラムが食料を貰ったことを認識します。
依頼主に食料を渡しに行きましょう。
キャンパーから食料をもらったことで、flagKids21がtrueになりました。そのため、今回は998~1006行目のelse if文が真になります。
ここからは、依頼主と行動を共にすることになります。そのため、1005行目で依頼主がその場から離れることを表現するために、依頼主がいた場所の座標を地面に置き換えています。
依頼主が後ろをついてくることを表現するプログラムです。
以前岩を壊すプログラムで使った変数を使用しています。
573~575行目のif文を見てみましょう。条件式は、左が押されてflagKids22がtrueの時です。574行目で、プレイヤーの右側に依頼主を表示するようにしています。キャラクター画像は、px、pyの値に表示されるので、プレイヤーの後ろに表示したい場合は、キーボード操作に対応してpx、pyの値を増減させればよいのです。
同様のプログラムを右、上、下にも作ります。
案内先の人のプログラムです。このイベントが発生していないときは、1015行目以降のelse文が真になります。
依頼人を連れていると、1010~1014行目のif文が真になります。
安心したメッセージが表示され、キーボード操作を受け付けなくします。
1013行目のsetTimeoutで5秒後にKidspaint関数を使用し、画面表示が変わるようにし、イベントにアニメーションを加えています。
1052行目が、Kidspaint関数の内容です。 基本はeventpaint関数と同じで、黒背景にキャラクターの絵を表示させてメッセージを流すな内容です。
1060行目でEndpaint関数を時間差で発動させるようにしています。
1063~1067行目がEndpaint関数の内容です。ここでは、画面上にでかでかと「おしまい」と表示させるようにしています。
以上が、今回のイベントで動作するプログラムの説明になります。
おわりに
ここまでご覧いただきありがとうございました。当初考えていた内容とは大きく違ったゲームになりましたが、自分でゲームを作る経験ができて良かったです。普段ゲームをやっていてもどうやって動いているのかプログラムの内容を考えたりするようになったので、ゲームを見る目が変わりました。あと、バグと不具合に寛容になれますね。
この記事でゲームの解説は終了です。来年も似たことをやると思いますので、見かけた際はどうぞ温かい目で見てください。
では、半年間ありがとうございました。