【HSPプログラミング講座#9】繰り返し命令を使ってボールを自動的に動かそう
タイトルとURLをコピーしました
今回のHSP言語プログラミングでは「プログラムを繰り返す」方法について説明していきます! 前回まではボタンを押した回数だけミサイルを前進させるプログラムでしたが、よく考えてみると普通はボタンを押したら自動的に進んでいきますよね。。。 そこで今回は自動的に進ませるために必要な命令を調べました。どんなプログラミング言語でもそうですけど説明書が分厚いので調べるのが大変ですよね。広辞苑みたいに膨大な量ですからね(汗) でもプログラマーにとって調べながらプログラムが書けるようになる能力が一番大事かも!? 私リサルは文字を読んでいると目がだんだん閉じてきて夢を見始めるという病を患っておりまして。。。なんとかやっていますが、みなさんなら大丈夫ですよ!うん。
3行目に新しく出てきたのは「repeat リピート」です。繰り返すという意味ですね。このrepeat命令は今までの命令とちょっと違っていて、5行目の「loop ループ」とセットで使います!repeatからloopまでの間に書かれているプログラムを繰り返します。
repeat命令には2つの数値がありますねぇ。今回の例では5と10です。1つ目の数字は繰り返す回数です。今回は5回にしてみました。 その後に続く数字はカウントの初期値です。今回は10を初期値としています。よくわからないですよね。。。どういう意味かと言いますと、10から始まって5回繰り返すので、10,11,12,13,14と自動的に数字が増えていきますよ。ってことです。
そして一番ややこしいのがcntです。これは変数なんです。しかも自動的に用意されます。今までは自分で変数の名前を決めて用意しましたよね!? このcnt変数の中に勝手に10,11,12,13,14と数字が入ってくるんです。(ちなみにcntはたぶんcount = カウントの略でしょう) そして4行目のmesでcnt変数の中身を表示して確かめています。では実行してみましょう。
ちなみにrepeat命令で1番目に与える数字が-1の場合、無限ループになるようです。ということはcnt変数に入ってくる数字は無限にどんどん上がり続けるということになりそうですね。 ちょっと作ってみましょうか。 ただし無限ループになってしまうのでプログラムを止めるにはウインドウの【×】ボタンを押して強制終了するしかなさそうですが・・・
こんな感じで書いてみました。repeatに-1を入れてカウントは0からスタートしています。4行目で画面をクリアして、posで数字を表示する位置を固定しています。そしてmesでカウントの数字を表示しています。実行してみるとやっぱり無限ループになってしまいましたね。強制終了するまでずーっと数字は上がっていきますね。
さぁ、なんだか面白くなってきましたよ~ このループ命令を使ってボールを飛ばしてみましょうかね!pos命令とcnt変数を組み合わせて少しずつ前進していくボールを作れるのではないでしょうか? 画面の端っこまでボールを動かしてみましょう!
3行目のrepeatで625回繰り返しています。これは625という数字は「● ← ボール」が右端まで飛んでいく距離になります。もしかしたら、みなさんのパソコンの画面の大きさによって、この数字が変わるかもしれません。(画面の大きさはパソコンによって違うので)なのでそれぞれで調整してみてください。 5行目のpos命令でx座標がcnt変数の中の数字とともに変化するようにしていますね。y座標は0で固定しています。そして6行目でボールに見立てた「● ← こいつ」を表示しています。 さぁ実行してみましょう!
おおぉ~! ついにボールが飛んでいきましたよ! これ本物のゲームみたい!(笑) プログラムってこんな感じで動いているんですね~ いくつかの命令文と、数行のプログラムでここまで作れるなんて楽しいですよね!? ここまで作ってみて思ったことは、無限ループだと強制終了しない限り止められないという問題がありましたね。 ゲームの場合ってプレイヤーがやられたりするまでずっと動いてますよね? なにか条件をつけてプログラムを終わらせることができればいいなぁ。 例えば【終了】というボタンを作って、それを押したらプログラムが終了するとか、、、 またちょっと辞書でも調べて次回のプログラミング講座でやってみますかね。