日程: 2016/7/31 (日) 9:30-11:30
課題: Scratchを使って「ポング」と言うクラシックゲームの作成
今回も皆でゲームを作りました。
PONG(ポング、ポン)のゲームは卓球(ピンポン)と同じ感じで、 ラケット(パドル)を使ってボールを相手に跳ね返るゲームです。 プレイヤーは自分のパドルをマウスで操作し、 相手のパドルはパソコンが動かすようになっています。
簡単なところから少しずつ作って、少し難しい算数を使ってボールやパドルの位置を操作し、 最後にパソコンのAI(エーアイ、人工知能)まで作りました。結構難しい内容でしたが、 皆でゲームを完成させることができました。おめでとうございます!
また、前回の同じように、色々なバリエーションが生み出されました。例えば、 ヒト対パソコンではなくヒト対ヒトで操作できるように工夫したり、 あるいは背景を変えて音を出したりする人もいました!
前回お手伝いいたいた方々(会場設営:Mさん、 インストラクター:Oさん)に加えて、 遠方からいらっしゃったYさんにインストラクターとして加わっていただきました。 心からお礼を申し上げます。
尚、WIFIのトラブルで持ってきたパソコンを使わず、 Scratchがインストールされているパソコンを使いました (Oさん、ありがとうございます!)。
以下、当日行った手順を記載しますので、復習などに参考にしてください。
やりたいこと:ボールを作る
やり方:
ボールの「スクリプト」タブで、ボールの動きのプログラムを作ってみよう。
やりたいこと:ボールをずっと動かし続けて、壁にぶつかったら跳ね返るようにする
やり方:
次はパドル(ラケット)が必要です。
やりたいこと:プレイヤーのパドルを作る
やり方:
プレイヤーがパドルを動かせるようにしよう。
やりたいこと:マウスの動きに沿って、パドルを上下動かせるようにする。但し、x方向には動いて欲しくない。
やり方:
パドルを右側に置いて試してみよう。
次に、相手(パソコン)のパドルを作成しよう。
やりたいこと:プレイヤーのパドルと同じものを作りたい。
やり方:
パドルを右側に置いて試してみよう。
パソコンのパドルは今、プレイヤーのパドルと全く同じ動きをしていておかしいですね。
このゲームに勝つにはどういう風にすれば良いでしょうか。
やりたいこと:パソコンがうまくプレイできるように、パソコンのパドルをボールの位置に沿って動くようにする。
やり方:
パソコンが上手にパドルを動かすようになった!
これまで、ボールはパドルに関係なく、壁に跳ね返っているので負けられない。
やりたいこと:ボールが右に行き過ぎたら、負けるようにする。
やり方:
ボールが右側に行き過ぎると、跳ね返るのではなく、ゲームを終了する
ヒント:x座標の値を常に確認するには、「x座標」の左側のチェックを入れる:そうすると値が常に画面に表示される
これだと、何をしても負けてしまう。
やりたいこと:ボールがパドルに跳ねるようにする。
やり方:
さて、次はどういう風に跳ね返るようにするか?
やりたいこと:ボールを跳ね返させるにはどうしたらよいか調べる
やり方:
ボールのスクリプト
観察したこと:
結果:
では、ボールのプログラムにもどろう。
「もし…」の中側の処理を作りましょう。
やりたいこと:ボールがパドルに跳ねるようにする。
やり方:
さー、試してみよう。ゲームらしくなってきましたね。
パドルをボールのところに動かすと、跳ね返る。
パドルがないと、ゲームが終わる。
パソコンのパドルを一度止めてみよう。
パソコンのパドルのスクリプトで「ずっと…」を一時的に横にどかす。
プレイしてみて、どうなるの?
そうです。パソコンはパドルを動かさなくても負けない。
なぜでしょう? → ボールが跳ね返るから。
やりたいこと:ボールが左に行き過ぎるとゲームを終了する
やり方:
今度は、パソコンが負けっぱなしだね。
やりたいこと:ボールがパソコンのパドルに触れたら、跳ね返るようにする
プレイヤーのパドルに触れた時と同じですね。
やり方:
これをテストしたいけど、パソコンのパドルは動かないね。
この部分は、当日実施しなかったが、参考に。
次は、パソコンのプログラムを改善したけど、その前に、ボールのプログラムを読みやすくしよう。
やりたいこと:ボールのプログラムが複雑になっているので、読みやすくしたい
やり方:
ゲームを始める前にいつもボールを動かすのは大変。
やりたいとこ:ゲームを始める時に、ボールを中央に置く。
やり方:
これで遊んでみよう。
パソコンに勝てますか? なかなか勝てないですね。 なぜ?
→ パソコンの動きがうますぎて、いつもボールに追従しているからだね。
やりたいとこ:パソコンのパドルの動きをパソコンでも負けるようにしたい
これはゲームのAIと言ってArtificial Intelligence、つまり人工知能だ。
ゲームの中で一番難しい部分だ。
やり方:
やり方は色々あります。アイディアを出そう。
これは1つのやり方。
パドルをいつもボールのy座標と一致させるとうますぎるので、パドルとボールのy座標の距離を縮めることにしよう。
やりたいこと:勝った時に「おめでとう!」、また負けた時に「残念!」の背景を表示したい
やり方: