
「Scratch」で遊ぼう!
しばらく間が空きましたが、いよいよ「プログラム」や「工作」で遊んでみようと思います。
はじめはやはり「Scratch」でしょうね。わが町の学校にもコロナに備え、リモート学習ができるように「タブレットやパソコン」が導入されました。
3月に退職した私でしたが「縁」あって、6・7月と地元の支援学校で臨時教員として働かせていただいております。(どの学校も教員不足で大変です。)
うちの学校で「プログラミング学習をバリバリ」とはいきませんが、「YouTube」を楽しんだり、校内写真撮影からのスライドショー・映画予告編作り、文字や計算学習のアプリの活用、訪問の生徒とのリモート交流などなど「タブレット」を楽しく使っています。
クラスには遊び道具もたくさんあるのですが、お気に入りの一つに「番犬ガオガオ」があります。「ハラハラ・ドキドキ」こちらも夢中になって楽しんでおります。で、「黒ひげ危機一髪」と並んでこの手のゲームの元祖といってもいいかもしれません「もぐらたたき」を「Scratch」で作ってみました。
上の「もぐらたたき」にリンクが貼ってあります。そこで遊べます。
改めて「Scratch」をはじめるには、二通りあります。一つはネットワークに繋がっていない時も遊べるように、事前にアプリをパソコンにダウンロードして楽しむ方法。もう一つはWeb上で遊ぶ方法です。現在、学校は常時ネットが使える状況ですが、「アプリなど何でもダウンロードしていいよ!」ではないので、Web上(ブラウザ)を利用して遊ぶことになります。
登録して「サインイン」できるようにしておくと、自分が作ったプログラムを管理でき便利です。「サインイン」しなくても「作る・遊べ」ます。
簡単にプログラム解説
その前に「ステージ」と「スプライト」の作成
「Scratch」は、「ステージ(背景)」とそのステージ上にいる「スプライト(キャスト)」からなりたっています。それ以外に「音」や「外部の機器等をコントロールするもの?」もありますが、この「ステージ」と「スプライト」がメインです。そこで、この「ステージ・スプライト」をサンプルから選ぶか、自分で作って(描く)ゲーム作りがはじまります。「もぐらたたき」では「もぐら」と簡単な「はらっぱ」(ゲームステージ、TimeUP、ハイスコア)を描いています。
プログラムの解説(もぐら)
「もぐら」は4枚の「コスチューム(パラパラ漫画みたいなもの)」が描いてあります。これを順に変えて、穴から「出たり⇄入ったり」を繰り返すようにしています。(もぐらを表示する位置を変えることで「出入り」をプログラムしているものをよく見かけますが、あえて「もぐら」はアニメーションにしてみました。「Scratch」の「お絵かき部分」だけでも随分遊べますよね。もぐらが6つの穴から出てきますが、もぐらの位置(x座標、y座標)を予め求めておいて、「乱数」(1〜6までの数字が適当に選ばれる)に応じて、6つの場所に対応させています。
あと、もぐらがたたかれた時の得点は「コスチュームの番号(もぐらの出具合)」で決めています。コスチューム4=2点、コスチューム3=1点 それと、上手にたたかれた時は「あた!」っていうサブルーチン(命令)を飛ばしています。
プログラム解説(あた!)
上手にたたかれた時、火花(あた!)のプログラムは、たたいたその位置(マウスポインター)に「火花」を表示するようになっています。
プログラム解説(背景)
ステージ(背景)には、このゲームの進行に関わるプログラムが書いてあります。ゲームがはじまると、「得点」を「0」にして「音」を鳴らし、「タイマー」をリセットします。そして時間を見張っています。「30秒」になったら「おしまい」の命令を飛ばします。「おしまい」を受け取ったら「ステージ(背景)」を「TimeUP」に変え、「得点」が「ハイスコア」かどうかを調べています。「ハイスコア」の場合は「ステージ(背景)」を「ハイスコア」に変えて「ハイスコアの得点」を表示するよう命令を飛ばします。
プログラム解説(ハイスコア)
「ハイスコア」の表示は、ちょっと難しいかもしれません・・・「得点の表示」は「スプライト(10位)1〜9」と「スプライト(1位)1〜0」の2種類作ってあります。(数字はコスチュームの番号に対応させています)また、それぞれのスプライトにプログラムが書いてあります。
10の位 「ハイスコア」が一桁の場合は10位はありません。0〜9までの得点だからです。で、2桁の場合は「ハイスコアの左側の数字」を表示しています。 例 ”25”なら左側の”2”、”38”なら”3”
1の位 (ハイスコア)ー(ハイスコアの1番目の数字)× 10 ⇨ 0? 例) ハイスコアが30とします。計算は 30ー(3)× 10 ⇨ 0 この時、「コスチュームを10にする」コスチューム10には”0”が描いてあります。
1の位が0でない時は(ハイスコア)ー(ハイスコアの1番目の数字)×10をコスチュームの番号にしています。例)ハイスコアが35とします。計算は 35ー(3)×10 ⇨ これは”5”になります。「コスチュームの5」は数字の”5”が描かれています。どうでしょう・・・
リンクしてある「Scratch」の「もぐらたたきゲーム」で「なかみ」をみて・さわることができます。実際にみて・さわって確かめてみてください。(おかしなところがあるかもしれません。その時はごめんさない)
まあ、プログラムには色々な書き方があって(プロのプログラマーは定石があるのかもしれませんが)、「絶対これじゃないとダメ」ではありません。結果「プログラムが動けばOK!」です。
簡単な解説だったので、「よくわからんな〜」と思われる方はまたお知らせください。一応「ゲームとして遊べて、得点が入って、そんでもってハイスコアが残る!」と欲張ったので、こうなってしまいました。一つ一つバラバラに分解して、動きを確認しがら組み上げていけば「なんとかなる!?」と思います。(そういう動画をアップするといいのかな〜)「プログラミング学習」も「プログラマー」を育てるんじゃなく、「プログラム」を通して「考え方の手順」のようなものを学んでみようということだと思います。「パズル・頭の体操」のように考えて、そんでもって「みんなで遊べる・楽しめる」ものが作れるといいですね。 それでは、また!