さてみなさん。
今回は、ツクるのに役立ちそうな、プログラミングの基礎知識を語る会の第2回です。
■目次(予定)
【1】コンピュータの構成
【2】プログラムの構造 (←今回)
【3】変数と関数
【4】オブジェクト指向
【5】ブラウザの仕組み
■本編
【2】プログラムの構造
今回解説するのは、RPGツクールMVでいうと、イベントコマンドの「フロー制御」と書かれている枠の部分です。
▼イベントコマンド(フロー制御)
上から「条件分岐」「ループ」「ループの中断」「イベント処理の中断」「コモンイベント」「ラベル」「ラベルジャンプ」「注釈」となっています。
●順次処理
「フロー制御」以外のイベントコマンドの大半を、ここでは「処理」と呼びます。
「処理」は記述した順に、上から下へ、実行されていきます。
※フローとは、流れの事ですので、上流から下流へ、水が流れるように実行されます。
▼順次処理
●条件分岐
「フロー制御」内に、「条件分岐」というものがあります。
RPGツクールMVの場合、他にも、「選択肢の表示(はい、いいえなどの入力)」などでも、分岐が発生しますが、条件が異なるだけで、構造上は同じです。
分岐に書かれた条件に従って、実行する処理が分かれます。
分岐には、範囲があり、その範囲内に、実行する処理を記述します。
(RPGツクールMVでは、「:分岐終了」と書かれている所までです)
注意点としては、条件を満たしていない場合には、その分岐の範囲内の処理は実行されないという点です。
なので、自分が実行させたい処理が、分岐の中に書くべきなのか、外に書くべきなのかは、要注意です。
また、「条件分岐」の中に、「条件分岐」を入れる事も出来ます。
これをやると、条件が複雑になるため、なるべく避けたい所ですが、場合によっては必要になります。
あと、RPGツクールMVでは、イベントの「ページ」も「条件分岐」の一種と考えてよいかと思われます。
ちなみに、Javaスクリプトでは、「if」と書く事で、この「条件分岐」を表します。
つまり、「もし、xxならば、◎◎する」という事を表現しているわけです。
プログラマが「if文(いふぶん)」と呼ぶのが、これの事です。
▼条件分岐
●繰り返し(ループ)
「フロー制御」内に、「ループ」というものがあります。
RPGツクールMVの場合、この「ループ」は、いわゆる「無限ループ」を作る事が出来ます。
(そのままでは、ゲームが進まなくなります)
ここで、「ループの中断」を「ループ」の範囲内に書くわけですが、「条件分岐」を合わせて使わないと、1回でループを抜けてしまうため、「ループ」を使う意味が無くなります。
RPGツクールMVでは、「はい」が入力されるまでループする……といった使い方が想定されます。
この場合、「選択肢の表示」による分岐(はい)の中に、「ループの中断」を書きます。
ちなみに、Javaスクリプトでは、「for」「while」「do while」のどれかを書く事で、ループを発生させる事が出来ます。
RPGツクールMVでは、ループからの脱出条件を書きますが、Javaスクリプトの場合、ループする条件を書きます。
▼ループ(ループする条件を書くパターン)
●構造化プログラミング
さて、「構造化プログラミング」と呼ばれる手法があります。
「順次処理」、「条件分岐」、「ループ」の3つの構造で、プログラミングする手法です。
この時、処理は、上から下へ、順に実行され、一番下に到達すると、終了です。
(ループは、上に戻りますが、1本の線として見る事が出来ます)
プログラミングの世界では、これが分かりやすいとされてきました。
RPGツクールMVの「フロー制御」には、「イベント処理の中断」や「ラベルジャンプ」といった制御方法もあります。
「ループ」を「ラベルジャンプ」を使って実装する事も出来ますし、好きな場所で「イベント処理の中断」をする事も出来ます。
ですが、特に「ラベルジャンプ」は、使い方次第では、イベントがどの順序で実行されるのか、分かりにくくなります。
「ラベルジャンプ」を使った方が分かりやすい場面もあるため、一概には言えませんが、Javaスクリプトには「ラベルジャンプ」に相当するコマンド(goto)が無いようですので、Javaスクリプトへのステップアップを目指す場合には、多用しない事をおススメします。
それでは~。
今回は、ツクるのに役立ちそうな、プログラミングの基礎知識を語る会の第2回です。
■目次(予定)
【1】コンピュータの構成
【2】プログラムの構造 (←今回)
【3】変数と関数
【4】オブジェクト指向
【5】ブラウザの仕組み
■本編
【2】プログラムの構造
今回解説するのは、RPGツクールMVでいうと、イベントコマンドの「フロー制御」と書かれている枠の部分です。
▼イベントコマンド(フロー制御)
上から「条件分岐」「ループ」「ループの中断」「イベント処理の中断」「コモンイベント」「ラベル」「ラベルジャンプ」「注釈」となっています。
●順次処理
「フロー制御」以外のイベントコマンドの大半を、ここでは「処理」と呼びます。
「処理」は記述した順に、上から下へ、実行されていきます。
※フローとは、流れの事ですので、上流から下流へ、水が流れるように実行されます。
▼順次処理
●条件分岐
「フロー制御」内に、「条件分岐」というものがあります。
RPGツクールMVの場合、他にも、「選択肢の表示(はい、いいえなどの入力)」などでも、分岐が発生しますが、条件が異なるだけで、構造上は同じです。
分岐に書かれた条件に従って、実行する処理が分かれます。
分岐には、範囲があり、その範囲内に、実行する処理を記述します。
(RPGツクールMVでは、「:分岐終了」と書かれている所までです)
注意点としては、条件を満たしていない場合には、その分岐の範囲内の処理は実行されないという点です。
なので、自分が実行させたい処理が、分岐の中に書くべきなのか、外に書くべきなのかは、要注意です。
また、「条件分岐」の中に、「条件分岐」を入れる事も出来ます。
これをやると、条件が複雑になるため、なるべく避けたい所ですが、場合によっては必要になります。
あと、RPGツクールMVでは、イベントの「ページ」も「条件分岐」の一種と考えてよいかと思われます。
ちなみに、Javaスクリプトでは、「if」と書く事で、この「条件分岐」を表します。
つまり、「もし、xxならば、◎◎する」という事を表現しているわけです。
プログラマが「if文(いふぶん)」と呼ぶのが、これの事です。
▼条件分岐
●繰り返し(ループ)
「フロー制御」内に、「ループ」というものがあります。
RPGツクールMVの場合、この「ループ」は、いわゆる「無限ループ」を作る事が出来ます。
(そのままでは、ゲームが進まなくなります)
ここで、「ループの中断」を「ループ」の範囲内に書くわけですが、「条件分岐」を合わせて使わないと、1回でループを抜けてしまうため、「ループ」を使う意味が無くなります。
RPGツクールMVでは、「はい」が入力されるまでループする……といった使い方が想定されます。
この場合、「選択肢の表示」による分岐(はい)の中に、「ループの中断」を書きます。
ちなみに、Javaスクリプトでは、「for」「while」「do while」のどれかを書く事で、ループを発生させる事が出来ます。
RPGツクールMVでは、ループからの脱出条件を書きますが、Javaスクリプトの場合、ループする条件を書きます。
▼ループ(ループする条件を書くパターン)
●構造化プログラミング
さて、「構造化プログラミング」と呼ばれる手法があります。
「順次処理」、「条件分岐」、「ループ」の3つの構造で、プログラミングする手法です。
この時、処理は、上から下へ、順に実行され、一番下に到達すると、終了です。
(ループは、上に戻りますが、1本の線として見る事が出来ます)
プログラミングの世界では、これが分かりやすいとされてきました。
RPGツクールMVの「フロー制御」には、「イベント処理の中断」や「ラベルジャンプ」といった制御方法もあります。
「ループ」を「ラベルジャンプ」を使って実装する事も出来ますし、好きな場所で「イベント処理の中断」をする事も出来ます。
ですが、特に「ラベルジャンプ」は、使い方次第では、イベントがどの順序で実行されるのか、分かりにくくなります。
「ラベルジャンプ」を使った方が分かりやすい場面もあるため、一概には言えませんが、Javaスクリプトには「ラベルジャンプ」に相当するコマンド(goto)が無いようですので、Javaスクリプトへのステップアップを目指す場合には、多用しない事をおススメします。
それでは~。