スクラッチプログラミング「的当てゲームを作ろう!」(3日間の様子)

ケン博士
サイエンストレーナーの桑子研です。このサイトで科学を一緒に楽しみましょう。 

スクラッチで的あてゲームを作るプログラミング講座を実施しました。この講座のゴールとしては、次の的あてゲームを参考にして、自分の的あてゲームを作ることです。この的あてゲームには、ゲーム作りにおいて必要な要素が多数入っています。

例えば、ボールの動き(放物運動)、鳥の運動(等速直線運動)、ボタンによるボールの発射、バックグラウンドでの時間の処理、衝突したときの猿のアクション、スタートごとに変わる鳥のスピードの変更、などです。

普段遊んでいるゲームを分解すると、これらのような要素の組み合わせでできていることに気づくとともに、作るにはどうしたらいいか?というような思考に変えてほしいと思っています。また数学・理科・美術など様々な知識を融合させなければゲームが作れないということも学んでほしいと思って企画しました。

参加生徒感想(8名)(中3 2名、高1 4名、高2 1名)
期間:2021年12月20日〜21日

1日目 50分×2 図形を描く

1日目は、Sctratchへのユーザー登録、GoogleClassroomでの課題閲覧(課題受け取り)、課題解決の順番で行いました。課題1は、まずは正方形の図形を描くプログラムについて皆で作ってもらって、その後のループ処理で、プログラムを短くするという体験です。正三角形を描くためには?という課題を出すことによって、回転角についても身につけられるようにしました。

課題2は正六角形の図形を描くプログラムを改造して、星や円を描くプログラムに改造することでした。プログラムは他の人と相談をしあいながら作っても良いということを強調しました。円は正N角形(Nが多い)からつくることができるということを知ってもらいました。円をつくったらその次は単振動です。

課題3は円運動のプログラムから、単振動の動きを取り出すということでした。単振動の動きというのが身近な場所にあるんだぞ!という例について、ディズニーランドを用いて考えてみました。

円運動から単振動を取り出した後は、不要な円運動をしている猫を画面からとりのぞいて、円運動を画面上から見えないようにしてバックグラウンドで動いているようにしました。

そして次は本格的に三角関数を用いて、円運動を使わずに、単振動を表現してみるということを行いました。三角関数を用いるためには、時間の変数を作り、時間をすすめながら、その時々の動きを目で見てわかるようにして調整するという作業が必要になります。

まだ三角関数を勉強していない中学3年生もいたのですが、三角関数はどんな角度をいれても、−1から1までの範囲しかとらないということを教えて、とにかくプログラミングをさせてみました。グラフの座標も考えながら、見ている人が見てわかるような単振動の表現を目指していきます。

1日目はここまでとなりました。明日はこの単振動プログラムが目で見てわかり易く表現できているかどうか、生徒の作品を見るところからスタートします。このときに自分の作品を公開して、他の人に見てもらう方法についても紹介し、クラスルームに自分の作品を貼り付けてもらおうと思います。

その後、自分が参考にしたいなという作品を選んで、コピーをして、自分のところに保存をして、そのプログラムを自己流に直すところからスタートしようと思います。

普通授業ではカンニングやコピーは行っては行けないと思いますが、プログラミングの世界では、コピーやネットで調べるということは日常茶飯事です。仕事でもそうですね。

これらのことも教えられるかなと思っています。

初めて自分でちゃんとプログラミングを触りましたが、とても分かりやすくて、面白く良かったです。今後自分でキャラを動かしたり、背景を作って本格的にゲームっぽくしたり、選択肢でルート分岐したり等やってみたいと思いました。
楽しかったです!
スクラッチは以前やっていましたが、今日習った中で知らなかったことが多くあったので大変参考になりました!
円のプログラムがまだ完全には理解できていないので教えて頂きたいです。
一回アプリでやったことがあったのですが、そこでよくわからなかったことも教えてもらえてよかったです。
かなり難しかったが楽しかった。
普段しないことなので面白かったです。
プログラミング嫌いだったけど少し理解できたので少し好きになりました。
楽しかったです!

2日目 50分×2 運動をプログラミング

2日目はプログラムをそれぞれ公開の方法からはじめました。自分の作ったプログラムをどのようにして世界に公開するのか、実際にやってみて、GoogleClassroomにあげてみるところからスタートです。

次に行ったのは九九計算プログラムです。九九の計算プログラムをループと変数を使って短くするところからはじめました。変数の部分では、計算をする作業が必要になります。次にタブレットゲームを作るためのボタンの作り方を行いました。ボタンを押したときに、どうするとうまく命令が飛ぶのかを体験したあとに、よりよいボタンの形を目指します。

次に今日2番めの課題として、等速直線運動と等加速度直線運動のプログラミングです。物理の知識を使いながらプログラミングをしていきます。頭の中に座標を意識しながら、調整をしていきます。最後にはキャラクターがジャンプをするというプログラムを作りました。

今日はここまでで終りとなりました。

生徒の感想

放物線あたりのところは正直わからなかったが、面白かった。も少し数字をいじくったらどうにかなるんじゃないかなと思った。
2dではなく3dもやってみたいと思いました。
オープンワールド系も細部までこだわることが出来るので作ってみたいです。
まだわからないところがありましたが、それでも楽しかったです!
普段やっているゲームの仕組みに近い気がして面白かったです。
難しかったが、ミスの原因が全角と半角の違いなど改善することができたのでよかったです。
等加速度直線運動がゲームで使われるところを見るのが楽しかった。

3日目 50分×2 ゲームを作ろう

ぼくの作った「的あてゲーム」をもとにして、自分で新しい機能をつけてゲームを完成させるということで、まずは的あてゲームを配りました。配ったプログラミングはこちらです。これをリミックスして、生徒は自分の作品にしていきます。基本的には、ここからはゲーム作りなので私は口をださず、生徒が作りたいものを作ってもらうという形で進めました。質問があったら手助けをするという形です。配ったプログラミングについて、どのような命令でどう動くのかを説明した後に、80分間を使ってプログラミングをさせました。

その中で、成功するまで何度もできるようにしたいというものがあり、私も自分のプログラミングを少し作り変えて、その生徒に渡しました。それがこちらです。

これをもとにその生徒が自分でさらにプログラミングを行っていきました。生徒の集中力はものすごく、ほとんど無言でプログラミングをしていき、的あてゲームの仮版が完成しました。それらがこちらです。

https://scratch.mit.edu/projects/620168002

https://scratch.mit.edu/projects/620167170

https://scratch.mit.edu/projects/620188720

https://scratch.mit.edu/projects/620168961

https://scratch.mit.edu/projects/620178001

https://scratch.mit.edu/projects/620167832

https://scratch.mit.edu/projects/620189171

https://scratch.mit.edu/projects/620169460

完成しなかったので、このプログラムをさらに冬休み中に試して、そして完成を目指します。さて、どのようなプログラムが完成するのか、今から楽しみです。

生徒の感想

三日目ではなかなかできなくてしんどかったがちょっとしたことでも難しいことや、プログラミングの奥深さなどを学べてよかった。マリオ作った人はすごい。
3日間とても楽しかったです!
思うように動かなかったりする場所もありましたが、冬休み中に改良してうまく動くようにしようと思います!
自分がやりたい事をやることが出来て良かったです。今度は自分で動けるようにプログラミングしてみたいと思います。
プログラミングへ興味を持つ第一歩になった気がする。ゲームの作られ方に思ったより数学や物理が使われていてびっくりした

全体を通した生徒の満足度

入門書としては、こちらがおすすめです。

科学のタネを発信中!

ニュースレターを月1回配信しています。


 

登録はこちらから