ループ2013年04月07日ループTweetPocket人は、1年に1つずつ年齢を重ねていく。時には同じことを繰り返したり、時には大きな選択を迫られたりする。して人は複雑な人生を歩み、それぞれがちがった結果を残す。Lesson2は哲学のお勉強をします。(そればっかりw)実は上に書いた中ニくさい文章は、プログラムにも同じことが言えます。Lesson1で作ったプログラムは、何回実行しても同じ結果が出ますよね?でも、ゲームはそうじゃありません。所持アイテムなり、最終的にはみんな違う結果になるはずです。100人とも同じ結果になるのであれば、それはゲームではなく「映画」になってしまいます。Lesson1で学習したとおり、プログラムは基本的に上から1行ずつ順番に実行されます。条件を満たすまで処理を繰り返したりします。シンプルなアクションゲームの処理を考えてみましょう。描くと、このような流れになるはずです。YES・NOで分岐しながら。全体の処理を繰り返していますね?Lesson2では、このようなプログラムの流れの変化を学習します。これができないとゲームが作れません。「映画」どころか「静止画」しか出せなくなってしまいます。難しいことはありませんので、頑張りましょう。繰り返しでは、同じ処理を繰り返す方法を勉強しましょう。ちなみにプログラム用語では、繰り返すことを『ループ』と呼びます。次のようにプログラムを書いてみてください。"スライムがあらわれた"loop実行してみると『スライムがあらわれた』が3回表示されます。「間に書かれた処理を繰り返しなさい」という意味です。repeatのパラメータは繰り返す回数です。repeatとloopの間には何行書いても構いません。上の例のようにTABキーでもう一段階右にずらしておきます。することで、どこからどこまでを繰り返すのかがすぐにわかるようになります。永久ループrepeatのパラメータを省略すると、どうなるでしょうか。この場合、必ずawait命令を入れてください。16loop実行してみると、文字の表示が何度も繰り返され画面の外まで表示されます。画面外に出ても、見えなくなっただけでループは止まりません。このように、ずっと続くループ処理を永久ループと呼びます。永久ループに限らずしばらく時間がかかるループ処理を書く場合は必ずawait命令を間に入れます。これは「ちょっとだけプログラムを止める」という命令です。する人は読み飛ばしてください▼▼▼▼▼▼▼▼Windowsというのは常にいろいろなプログラムが同時に動いています。ネットをしながら音楽を聴いたり、ネットだって何ページも同時に開けますよね?何もしてなくても、時計が動いていたり、マウスが動いていないか監視したりいろいろやってます。それは、正確に言うと「同時に処理してる」のではなく「順番に少しずつ処理している」のです。これを専門用語で「マルチタスク」と言います。そんな忙しい状況で、HSPで永久ループを書くとパソコン(CPU)はHSPの処理にかかりっきりになってしまいます。すると、他の大事な機能を処理する暇が無くなってしまい、パソコンがフリーズしてしまいます。パソコンがフリーズしてしまえばHSPの処理も止まってしまい、どうしようもなくなってしまうのです。そこで、永久ループの場合は、ちょっとだけ処理を止めるawait命令を入れます。すると、HSPが一瞬止まった隙に、他の処理をすることができ、みんなスムーズに動けます。await命令のパラメータは、プログラムを停止させる時間です。1000と書けば、1秒間止まります。上の例の16という数値はどこから来たのでしょうか。実はゲームは基本的に1秒間に60回画面を更新します。約16ミリ秒に1回画面を更新していることになります。今回はそれに合わせてみました。この講座はゲーム制作を目標にしているので、基本的にawaitは16でいいでしょう。永久ループでなくても、ある程度時間がかかるループ処理をする場合はawaitが必要になります。言っても、数百回のループであれば(処理内容にもよりますが)一瞬で終わるので、awaitは必要ありません。16と書けば必ず1秒間に60回ループするとは限りません。複雑な処理をしたり、性能の低いマシンで実行すれば、それより遅くなることがあります。1秒間に60回以上繰り返すことはなくなります。指定した回数繰り返される。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。