第11章.「ボタンを押すまで待ってて!」


 BUTTON 命令のヘルプを見ると、「CONTROLLER のヘルプを参照してください」と書いてあるので、まず右の画像を見てください。

 

 Switch3DS よりコントローラーが複雑なので、難しいと思いますが、とりあえずデフォルトコントローラー0 と覚えておけば良いでしょう。



 ボタンが押されるまで待つようにするには、条件付きのループを使います。

 いくつか種類がありますが、とりあえず REPEAT ~ UNTIL という命令をオススメします。

 今回の条件は「何かボタンが押されるまで待つ」なので、

BUTTON (0,#B_ANY)==1

…と入力します。

 これを BUTTON (0,#B_ANY) としても同じ結果になるのですが、場合によっては BUTTON (0,#B_ANY)==0 という条件で入力することもあることから、==1 を省略しないようにしました。

 この仕組みを理解していれば、==1 を省略しても構いません。

 

 ちなみに、ANY を使うと「どのボタンが押されても良い」となるので、押す人はラクなのですけど、複数のボタンを使用している作品の場合には、誤作動が起きる可能性が高くなってしまうため、基本的には一つのボタンに限定したほうが良いでしょう。

 なお、今回のプログラムでは ANY でも問題ありません。



 REPEAT ~ UNTIL の間には、ループしている間に行われる処理を入力するのですが、今回は WAIT と入力しておいてください。

 ここに何も入れないと、ループがもの凄い速さで繰り返されてしまうので、WAIT によってスピードを抑えるのです。



応用編.「一定時間だけ待つプログラム」


 この章で、ボタンが押されるまで待つプログラムを学びましたが、ボタンを押さなくても一定時間が経つと次に進むプログラムも、今回の応用で作ることができます。

 ただし、後の章(第12章第13章第15章)で学ぶ知識も必要となるため、すぐに理解できない可能性があると思います。

 もし、すぐに分からない場合は、この応用編は後回しにして、また後で読んでみるのも良いでしょう。

 一定時間だけ待つプログラムが必要になった時に、このページがあることを思い出してください!

 このプログラムでは、上で説明していたように……

BUTTON (0,#B_ANY,0)==1 と、

BUTTON (0,#B_ANY,0)==0 という条件で、

どれかボタンが押された場合と、

どれもボタンが押されなかった場合とで異なる結果になるようにしています。

 だから、BUTTON (0,#B_ANY,0) という省略形だけしか知らないと困ってしまうという訳です。

日本語版(Japanese version)
日本語版(Japanese version)
英語版(English version)
英語版(English version)

 例として、4秒間だけ待つプログラムを作ってみましょう。

 4秒経つ前にボタンが押されてしまう場合も考えて、ボタンが押された場合押されずに4秒が経つ場合の表示を設定します。

 途中でボタンが押された場合には、もう一度4秒待つことになるので、そういう設定も必要になることに注意が必要です!

※日本語版と英語版の内容は同じです。

 少しだけプログラムが違いますけど、それは ” ” という記号がそのままでは入力できないため、CHR$(34)を使って入力しているからです。



日本語版
日本語版
英語版
英語版

 このプログラムを実行すると、このように表示されますが、最低一回以上はボタンを押してみてください。

 そうすることで、ボタンが押された場合の結果を見ることができます。

日本語版(Japanese version)
日本語版(Japanese version)
英語版(English version)
英語版(English version)

 4秒経つ前にボタンを押すと、このように表示されます。

 そして再び、最初の状態に戻ります。



日本語版(Japanese version)
日本語版(Japanese version)
英語版(English version)
英語版(English version)

 4秒間ボタンを押さずに待つと、このように表示されます。

 ボタンが押されるまでずっと待たないで進行させたい場合に、このようなプログラムが必要になるでしょう。

 今回の例では、4秒だけ待つプログラムを作りましたが、数値を変えれば別の時間だけ待つように変えられます。

 約1秒=60なので、5秒なら300、10秒なら600という感じです。

 一定時間だけ待たせるプログラムが必要になった場合に、このプログラムを応用してみてください。(`・ω・´)ゞ