ネコたたきゲームを使ったスクラッチワークショップ
ネコたたきゲームワークショップとは?
プログラミングソフト「スクラッチ(Scratch)」を使い、自分でプログラムを組んで、モグラたたきゲームを作るワークショップ。この文書はワークショップを進行するファシリテーター向けに書かれている。このワークショップは初心者を対象に最短で30分、発展を入れて2時間くらいまで対応する。ファシリテータ不在あるいはサポーターが不足している場合は受講者の自習用資料を配付すると良い。かんたんなプログラミング(ネコ歩き)
(「猫歩き・猫逃げ ワークショップ資料」を参照)
ねこたたきゲームのつくり方
- 前準備として、「かんたんなプログラミング」で作ったスクリプトからいらないブロックを外す。具体的には、「ずっと」の中の「10歩動かす」をドラッグすると、それ以下のブロックが全部外れるので、ブロックパレットに戻す。つまり、「緑の旗がクリックされたとき」と「ずっと」だけが残っている状態になる。
- 今回はモグラたたきのルールで今回はネコをたたく(モグラたたきを知っているかどうか確認。知らなければ説明)。このゲームではネコが表示されたり、隠れたりする。表示されているときに、ネコをたたく(クリックする)と成功、外すと失敗になる。まず、ネコを隠す仕組みから作る。
カテゴリーを「見た目」に変え、「隠す」ブロック(スクロールして下の方にある)をクリックするとネコが消える。「表示する」ブロックをクリックするとネコが表示される。まず、「隠す」をドラッグして、「ずっと」の中に入れてみる。緑の旗をクリックすると、当然ネコは消えたままになる。
続いて、「表示する」ブロックを「隠す」の下に入れると、今度は高速に点滅する。 - これでは、ゲームにならないので、もっとゆっくりにするため、「制御」カテゴリーの「1秒待つ」ブロックを使う。このブロックを「隠す」と「表示する」の間に入れると、一瞬だけ表示され、すぐ消える。「1秒待つ」を「表示する」の下にもうひとつ入れると1秒置きに点滅を繰り返す。
- これだと、出現の予想がついてしまうので、不規則に点滅するようにしたい。そのためにはサイコロを振って、その数の分だけ待つようにすればよい。このような仕組みを乱数と言う。
「演算」カテゴリーに切り替え(右の下から2番目。黄緑色)、「1から10までの乱数」ブロックを、「隠す」と「表示する」の間にある「1秒待つ」の「1」の上にドラッグする(白枠が出たら離す)。
これで、いつネコが表示されるかわからなくなった。
ネコが表示されたタイミングを見計らって、赤信号で止める。 - 次にネコをたたくと鳴くようにする。「音」カテゴリーに切り替え(左の上から3番目。ピンク)、「ニャーの音を鳴らす」ブロックをクリックしてみる。すると、ネコがニャーと鳴く。このブロックを真ん中にドラッグする(他のブロックにはつなげない)。
ネコをたたいた時に鳴くようにするには、「制御」カテゴリーの「スプライト1がクリックされたとき」ブロックを使う。「スプライト1」はこのネコの名前だ。
このブロックを「ニャーの音を鳴らす」の上に付けると、ステージのネコをクリックすることで鳴く。 - これでスクリプトは完成した。しかし、ネコが1匹では面白くないので、ネコを増やしてみる。
まず、ネコをドラッグしてステージの左上に動かす。ステージの左上にあるスタンプボタンをクリックすると、カーソルがスタンプの形に変わるので、これでネコをクリックするとコピーができる。コピーされたネコはステージ上の適当な場所に配置する。これを繰り返して、ネコを6匹くらいにする(シフトキーを押しながらスタンプすると連続コピーできるがここでは教えない。必ず大量にコピーする子がいて収拾がつけにくくなる)。 - このゲームで遊ぶには、ステージを全画面にするとよい(そうしないとスプライトのクリックイベントを正しく拾ってくれない)。それにはステージの左上にある青い長方形のボタンをクリックする(発表モード)。この状態で緑の旗をクリックするとゲームがスタートする。発表モードを抜けるには、左上の青い長方形のボタンをクリックする。
- この後、時間が余れば、ネコの絵を描きかえたり(コスチュームタブのペイントボタン)、失敗した時の音を入れたり(音タブの録音や読み込みボタン)、スコアやタイマーを追加したりする(「変数」カテゴリー)。
小平道場的補足:
イベントで躓きやすい。イベントは先頭にしか付けられない旨を説明する必要がある。
「2つの処理を同じ列に書いてもらう&別のトコに書いてもらう」をやってもらう。
「歩きながら喋る」とか。同時にする命令を書く時は「イベント」の先頭にしか置けないヤツを使うことを説明する。
乱数の説明をする(すごろくや富くじの例)
可能なら座標の説明もあるようにした方がいい。
緑の旗をクリックしたら特定全然違うところに表示されるようにする。