【はじプロ】フラグノードンを攻略:初心者がつまづきやすいポイントを解説してみた
2023.10.17更新
広告
【PR】この記事には広告を含みます。
この記事はこんな人に読んでもらいたい
- ナビつきレッスンを”何となく”進めてしまっていたあなた
- フラグノードンをどのように使えばよいのかイメージできていないあなた
この記事はこんな人に読んでもらいたい
- フラグノードンとは『入力を受ける』とその後は『出力を出し』『続ける』ノードン
- 『手順』のなかで『判断』が必要なところで使おう
お疲れ様です。ゆーまるです。
今回は「ナビつき!つくってわかる はじめてゲームプログラミング」(はじプロ)のフラグノードンとその使い方を解説します。
フラグノードンは、レッスン4で初めて登場しています。
ゲームプログラミングに限らず、プログラミングではフラグという概念が重要になってきます。
フラグの概念は、過去の記事【プログラミング基礎知識】フラグとは?よく聞く言葉だけどどういう意味?で説明していますので合わせてご確認ください。
是非、最頻出ノードンの1つであるフラグノードンの活用法を具体的に想像してみながら、しっかり一緒に学んでいきましょう。
そもそもフラグノードンとは?どういうことができるの?
フラグノードンとは、入力を受けるとその後は1の出力を出し続けるノードンです。
フラグノードンの役割を分解すると以下の3つです。
フラグノードンの役割
- 入力を受ける
- 出力を出す
- 出力を出し続ける
順番に説明をしていきます。
役割1. 入力を受ける
過去の記事【プログラミング基礎知識】フラグとは?よく聞く言葉だけどどういう意味?で説明していますが、フラグとは『以前にイベントが発生したと判断するための目印』です。
役割2. 出力を出す
フラグの役割上、イベントが発生したことを他のノードン教えてあげる必要があります。
「イベントが終わっているよー」ということを言い続ければよいので、出力をする数値は、0でなければいくつであってもよいのです。
そこで、コンピュータが理解しやすい『1』を出力します。
ちなみに、コンピュータは『0』と『1』の2つの数字ですべて表現するのでしたね。
過去の記事【コンピュータ基礎知識】片手で31まで数える方法!2進法とは?で説明していますので、ぜひこちらも確認してみてください。
役割3. 出力を出し続ける
イベントが終わった瞬間だけ次のノードンに出力を出しても、
そのあとにいるノードンが、イベントが終わったかどうか理解できません。
そこで、フラグノードンが『出力を出し続ける』役割を持つことで、
あのイベント終わったっけ?どんな結果だったっけ?
と知りたいときに、フラグノードンが『0』と言っているか『1』と言っているか確認すればよいことになります。
このあと説明する使用例でさらに詳しく説明します。
フラグノードン実用例解説:隠しコマンド
近年のゲームではなかなか見られなくなった「隠しコマンド」。
タイトル画面などのゲーム中のどこかで決められた順にボタンを押すと、パワーアップしたり、特殊なゲームモードで遊ぶことができたりしました。
私が小学生のころは、
- グラディウス:↑↑↓↓←→←→BA(通称コナミコマンド)
- ドラゴンボールZ 超武道伝:↑X↓B←L→R
などが有名でした。
同世代の親御さんや、ファミコン・スーファミ世代の方々は懐かしんでいただけるのではないでしょうか?
隠しコマンドこそ、フラグという概念、フラグノードンを理解する材料としてうってつけなのです。
順を追って説明していきます。
実例:隠しコマンドのプログラミング
例えば、『▽▷BA』という隠しコマンドを作りたいとします。
そして、コマンドの入力が成功したらクラッカーが鳴る仕組みを作ることを考えてみます。
必要なイベントは次のとおりです。
隠しコマンドに必要なイベント
- ▽ボタンが押される
- ▷ボタンが押される
- Bボタンが押される
- Aボタンが押される
とても当たり前のことを言っています。
しかし、この『順番』が必要なのです。
例えば、『①▽ボタンが押される』の次に『③Bボタンが押される』が行われることを許可したら、どんな問題が起こるでしょうか?
スクロールを止めてちょっと考えてみましょう。
・
・
・
・
・
答えは、『めちゃくちゃに押してもクラッカーが鳴ってしまう』です。
極端に言えば、AB▷▽と押してもコマンド成功となってしまうのです。
では、どのように対策をすると、めちゃくちゃに押してもクラッカーが鳴らないようになるでしょうか?
スクロールを止めてちょっとだけ考えてみましょう。
・
・
・
・
・
答えは、次のとおりです。
正しい隠しコマンド作成の手順
- ステップ①:▽ボタンが押されたか確認する
- ステップ②:次に押されたボタンが▷ボタンか確認し、違ったらステップ①に戻る
- ステップ③:次に押されたボタンがBボタンか確認し、違ったらステップ①に戻る
- ステップ④:次に押されたボタンがAボタンか確認し、違ったらステップ①に戻る
このように、『順番』と『判断』を含んだ手順にすることが必要です。
これならば、▽ボタンを押してステップ①をクリアした後、次にBを押してしまったら、次のステップに進むことができなくなります。
ちゃんと正しくステップが踏まれましたよ、ということを示すためにフラグを立ててあげます。
逆に間違った手順が踏まれた場合、フラグを下ろす作業をしてあげます。
実際にプログラムを組んでみるとこのようになります。
実際のプログラミング画面を使って説明します。
下のスライドショーを見てください。画面の右側をクリックすると次のスライドへと移動します。
なお、一般的なプログラミング言語には『if』というコマンドがあります。
「もし○○が起こったら△△する」という指令を起こすコマンドです。条件分岐と言われます。
今回ご説明したフラグノードンと同じような内容ですね。
はじプロには残念ながら『if』コマンドがないので、フラグノードンをところどころに配置して分岐を実装する必要があります。
考え方は同じですので、フラグノードンを使いこなすことができれば、今後他のプログラミング言語を学ぶ際に、すんなりと条件分岐を理解することができますよ。
フラグノードンの解説まとめ
今回は、「ナビつき!つくってわかる はじめてゲームプログラミング」 (はじプロ)の フラグノードンとその使い方の一例の解説をしました。
フラグノードンの解説まとめ
- フラグノードンとは『入力を受ける』とその後は『出力を出し』『続ける』ノードン
- 『手順』のなかで『判断』が必要なところで使おう
作りたい仕組みが複雑になるにつれて、フラグノードンを使う頻度はとても増えていきます。
凝ったゲームを作りたい方にとっては必修科目ですので、
是非今回の記事を何度も見返して、習得していただければと思います。
ゲームを作るうえで最頻出のノードンについては一通り説明していますので、併せてご覧ください。
では、次の記事までごきげんよう。