Scratchで簡単に作れるカメラを使ったゲーム

PCやタブレットについているビデオカメラを使って簡単なゲームを作成します。
カメラを使うと視覚的にも楽しく、体を使ったゲームになります。
パソコンにカメラが付いてないという方でもUSBカメラだと比較的安価にカメラ機能を追加することができます。

ボールを配置する

右下のストライプの追加ボタンをクリックしボールを選択します。デフォルトで入っているネコがいれば消しましょう。

ball



ボールに動きを加える

まずは単純にボールに動きを加えましょう。

simple_falling

1) 「旗が押されたとき」(イベント)を追加
2) 「y座標をxxにする」(動き)を追加し値を187にします。これで旗が押されたときにボールが画面の一番上に来ます。
3) 「ずっと」(制御)のループを追加します
4) 「y座標をxxずつ変える」(動き)を追加し値を-5にします。これでボールが上から落ちてくるようになります。この値を変えることでボールの落下速度を変えることができます。

ビデオの拡張機能を追加

ただ単にボールが落ちてくるだけでは面白くないのでゲームの要素を加えていきましょう。
その前にビデオの拡張機能を追加していきます。
extension
画面左下の拡張機能メニューをクリックします。
video_extension
拡張機能リストが表示されるので「ビデオモーションセンサー」を選択します。
video_menu
ビデオモーションセンサーのブロックが追加されました。

ビデオの動きに合わせてボールを動かす

先ほど作った落ちるボールをカメラの動きに合わせて動かすようにしていきます。
virtical_otedama
1) 旗がクリックされたらビデオをオンにします (ビデオ)
2) ビデオの起動に時間がかかる場合があるので2秒待ちます。(制御)
3) ボールを「表示する」おまじないを入れておきます(見た目)
4) 「ずっと」のループの中に「もし~なら」(制御)、「値の比較」(演算)「スプライトのビデオのモーション」(ビデオ)の組み合わせを追加します。これで、「もしボールの上で動きがあったら」という条件になります。
5) 4)で追加した「もし」の中に「xx回繰り返す」(制御)を追加します。
6) 5)のループの中に「y座標をxxずつ変える」(動き)を追加します。
7) 「ずっと」のループの中に「もし~なら」(制御)、「値の比較」(演算)、「y座標」(動き)を追加し、y座標を比較する値を-186にし、「ボールが一番下にきたら」の条件を追加します。
8) 「ボールが一番下にきたら」の中に「xxと2秒言う」(見た目)を追加し、メッセージを「Game Over」にします。
9) 「ボールが一番下にきたら」の中に「ビデオを切る」(ビデオ)を追加します。
10) 「ボールが一番下にきたら」の中に「隠す」(見た目)を追加します。
11) 「ボールが一番下にきたら」の中に「すべてを止める」(制御)を追加します。

点数を数える

点数を数えることで競争できるようにします。
add_score_instruction
1) 左のメニューの変数をクリックし、「変数を作る」を使用し「score」という変数を追加します。
2) 変数の初期化のために「旗が押されたとき」の後に、「scoreを0にする」(変数)を追加
3) 「scoreを表示する」(変数)を追加し、画面上に「score」が表示されるようにします。
4) 「もし、スプライトのビデオのモーション~」のブロックの中に「scoreを1ずつ変える」を追加します。

これで点数が加算されるようになりました。
ここまでで子供と遊ぶゲームとしても十分楽しめると思います。

横の動きを加える

ここから少しずつ複雑になっていきます。
horizontal_move

1)ボールの横の初期値をランダムに設定します。y座標のみ設定していた部分を、「x座標とy座標の両方を設定する」(動き)ブロックに置き換えます。x座標の値を「乱数」(演算)にします。x座標の範囲は-187~187にします。
2) 左の変数メニューを選択し、「横の動き」という変数を作成します。
3) 「もし、スプライトのビデオのモーション~」のブロックの中に「横の動きを乱数にする」(変数)(演算)を追加します。

4) 「20回繰り返す」のループの中に、「x座標を横の動きずつ変える」を入れます。

これでボールに触れた際にランダムに横に動くようになります。

点数に応じてどんどん難しくなるようにする

さらに難しくするために点数が高くなれば高くなるほど、ボールの数が増えるようにします。

falling_ball