Excelで、回り続けるスロットをボタン押下で止めるために、無限ループの中にDoEventsを書きました。
スロットマシンをJavaで作る際にはRunnableをimplementsし、Threadのstart()でループを回しました。
さてさて、scratchです。
よくマリオなんかである、上矢印キーでジャンプし、だんだん降りてくる動きありますよね。
試しにこんなブロックを作ってみます。
ジャンプしてだんだん降りてきます。
しかし、降りている途中でもう一度上向き矢印キー押しても反応しません。それはそうですよね。繰り返しが行われていて、イベントは終了していないのですから。
で、こんなふうに変えてみます。
上向き矢印キーの押下イベントは、キャットを上げたら、メッセージを放って終わります。
メッセージを受け取ったという別のイベントは、少しずつキャットを下げて行きます。これは別のイベントなので、また矢印キーを押すと、キャットは更に上がります。
これで横の動きも混ぜると、もうマリオっぽい動きになります。
いや、ほんとにscratchってプログラミングのエッセンス詰まってるんですねー。驚き。
RunnableとかThreadとかいうとなんか敷居高いですけど、要するにscratchのメッセージじゃね?っつう理解にすると敷居下がりません?
ちなみに、Javaで作ったスロットマシン、塾生にやらせたら一発で777揃えられてしまいました。自分でテストしたときは揃えられなかったんだけどなー。
名前は「押忍!店長」です(笑)