スクラッチプログラミング - たっきゅうゲームのつくりかた - Part 2
Part 1でつくった卓球(たっきゅう)ゲームのプログラムを完成(かんせい)させます。得点(とくてん)をかぞえたり、ボールのはやさをかえたり、スマッシュできるようにして、ゲームをおもしろくしましょう。
更新日:2023年12月27日
Part 1でやったこと
前回(ぜんかい)の Part 1 では、卓球(たっきゅう)のラケットとボールの基本的(きほんてき)なうごきをつくりました。
- 自分(じぶん)のラケットを操作(そうさ)する
- 相手(あいて)のラケットを自動(じどう)でうごかす
- ボールをいろいろな方向(ほうこう)へうちかえす
Part 2でやること
今回(こんかい)は、つぎの内容(ないよう)を追加(ついか)して、ゲームを完成(かんせい)させますよ。
- 得点(とくてん)をかぞえる
- ボールのはやさをかえる
- スマッシュをうてるようにする
ボールのスプライトを選択(せんたく)してから、プログラミングをはじめましょう!

とくてんをかぞえる
Part 1でつくったプログラムでは、おたがいにずっとボールをうちあうことができました。それではゲームにならないので、ボールをうちかえすのに失敗(しっぱい)したら、点数(てんすう)がはいるようにしましょう。
へんすうをつくろう
得点(とくてん)をかぞえるための変数(へんすう)、「じぶんのとくてん」と「あいてのとくてん」をつくって、初期化(しょきか)しましょう。ステージに得点(とくてん)が表示(ひょうじ)されるように、変数(へんすう)にチェックをいれておいてくださいね。
- 得点(とくてん)の変数(へんすう)を、さいしょは(0)にしておく

てんすうがはいるのは、どんなとき?
自分(じぶん)に点数(てんすう)がはいるのは、どういうときでしょうか?相手(あいて)のラケットにボールがあたらなかったときですね。相手(あいて)のラケットは「xざひょう:-220」の位置(いち)にあるので、ボールのxざひょうが「-220」よりちいさくなったら、ラケットにあたらなかった、ということになりますよ。
- もしxざひょうが(-220)よりちいさいなら、ボールをかくして、じぶんのとくてんを(1)ずつかえる

相手(あいて)に得点(とくてん)がはいる条件(じょうけん)も、おなじようにブロックをくみあわせてください。
- もしxざひょうが(220)よりおおきいなら、ボールをかくして、あいてのとくてんを(1)ずつかえる

とくてんをかぞえるブロックをつくろう
「とくてん」というブロックをつくって、得点(とくてん)をかぞえるときの条件(じょうけん)をまとめましょう。
- ブロック定義(ていぎ)で「とくてん」ブロックをつくる

定義(ていぎ)「とくてん」には、このあともブロックを追加(ついか)していきます。どちらかの得点(とくてん)が11てんになるまでゲームをつづけるられるように、定義(ていぎ)していきますよ。
ゲームをつづけよう
得点(とくてん)したあとも、どちらかが11てんになるまでゲームがつづくようにします。メッセージブロックをつかって、ゲームをスタートさせる合図(あいず)をおくりましょう。
- 得点(とくてん)したあと、ゲームかいしをおくる

「はたがおされたとき」ではなく、「ゲームかいしをうけとったとき」に、ボールがうごくようにかえてください。得点(とくてん)したあとは、ボールがかくれた状態(じょうたい)ですね。「ひょうじする」ブロックも追加(ついか)しておきましょう。
- はたがおされたとき、得点(とくてん)を(0)にして、ゲームかいしをおくる
- ゲームかいしをうけとったとき、ボールを表示(ひょうじ)して、うごかす

ゲームのタイミングをととのえよう
得点(とくてん)したあと、すぐにまたボールがうごきだすと、ゲームをやりにくいですね。得点(とくてん)するときと、ボールをうごかしはじめるまえに、「(1)びょうまつ」ブロックをつかって、ゲームのタイミングをととのえましょう。
- 「(2)びょうまつ」、「(1)びょうまつ」を追加(ついか)する

ゲームをおわりにしよう
どちらかが11てんをとったらプログラムをとめて、ゲームをおわりにします。
- もしじぶんのとくてんが11、または、あいてのとくてんが11なら、すべてをとめる

とくてんをかぞえるブロックのかんせい
「とくてん」ブロックを定義(ていぎ)することができました!ボールをうごかすプログラムのなかに「とくてん」ブロックを追加(ついか)したら、得点(とくてん) が11になるまで、ゲームがつづくようになりますよ。
- 「ずっと」のなかに「とくてん」を追加(ついか)する

つぎは、ラケットでうったときにボールのはやさがかわるようにしていきます。ゲーム完成(かんせい)まであとすこし!がんばりましょう!
ボールのはやさをかえる
卓球(たっきゅう)をやっていて、ずっとボールのはやさがおなじなのは、おもしろくないですね。変数(へんすう)と乱数(らんすう)をつかえば、どんなはやさのボールがくるかわからなくできますよ。
これより下は、Pyxofyメンバー限定公開です。メンバーになると読むことができます。登録方法は、『メンバー登録・ログイン方法』をご覧ください。

「きょうからはじめるスクラッチプログラミング入門」by Pyxofy
Pyxofy から Scratch の基本をまとめた電子書籍を出版しました。
Apple Books・Kindle でご購入ください。