スクラッチプログラミング - たっきゅうゲームのつくりかた - Part 2
Part 1でつくった卓球(たっきゅう)ゲームのプログラムを完成(かんせい)させます。得点(とくてん)をかぞえたり、ボールのはやさをかえたり、スマッシュできるようにして、ゲームをおもしろくしましょう。
更新日:2023年12月27日
Part 1でやったこと
前回(ぜんかい)の Part 1 では、卓球(たっきゅう)のラケットとボールの基本的(きほんてき)なうごきをつくりました。
- 自分(じぶん)のラケットを操作(そうさ)する
- 相手(あいて)のラケットを自動(じどう)でうごかす
- ボールをいろいろな方向(ほうこう)へうちかえす
Part 2でやること
今回(こんかい)は、つぎの内容(ないよう)を追加(ついか)して、ゲームを完成(かんせい)させますよ。
- 得点(とくてん)をかぞえる
- ボールのはやさをかえる
- スマッシュをうてるようにする
ボールのスプライトを選択(せんたく)してから、プログラミングをはじめましょう!
![ボールのスプライトが選択された状態 ボールのスプライトが選択された状態](https://www.pyxofy.com/content/images/2022/06/11-01-scratch-programming-table-tennis-2.png)
とくてんをかぞえる
Part 1でつくったプログラムでは、おたがいにずっとボールをうちあうことができました。それではゲームにならないので、ボールをうちかえすのに失敗(しっぱい)したら、点数(てんすう)がはいるようにしましょう。
へんすうをつくろう
得点(とくてん)をかぞえるための変数(へんすう)、「じぶんのとくてん」と「あいてのとくてん」をつくって、初期化(しょきか)しましょう。ステージに得点(とくてん)が表示(ひょうじ)されるように、変数(へんすう)にチェックをいれておいてくださいね。
- 得点(とくてん)の変数(へんすう)を、さいしょは(0)にしておく
![自分の得点を数えるための変数と、相手の得点を数えるための変数 自分の得点を数えるための変数と、相手の得点を数えるための変数](https://www.pyxofy.com/content/images/2022/06/11-02-scratch-programming-table-tennis-2.png)
てんすうがはいるのは、どんなとき?
自分(じぶん)に点数(てんすう)がはいるのは、どういうときでしょうか?相手(あいて)のラケットにボールがあたらなかったときですね。相手(あいて)のラケットは「xざひょう:-220」の位置(いち)にあるので、ボールのxざひょうが「-220」よりちいさくなったら、ラケットにあたらなかった、ということになりますよ。
- もしxざひょうが(-220)よりちいさいなら、ボールをかくして、じぶんのとくてんを(1)ずつかえる
![自分が得点する条件 自分が得点する条件](https://www.pyxofy.com/content/images/2022/06/11-03-scratch-programming-table-tennis-2.png)
相手(あいて)に得点(とくてん)がはいる条件(じょうけん)も、おなじようにブロックをくみあわせてください。
- もしxざひょうが(220)よりおおきいなら、ボールをかくして、あいてのとくてんを(1)ずつかえる
![相手が得点する条件 相手が得点する条件](https://www.pyxofy.com/content/images/2022/06/11-04-scratch-programming-table-tennis-2.png)
とくてんをかぞえるブロックをつくろう
「とくてん」というブロックをつくって、得点(とくてん)をかぞえるときの条件(じょうけん)をまとめましょう。
- ブロック定義(ていぎ)で「とくてん」ブロックをつくる
![定義「とくてん」に得点を数える条件をつなげる 定義「とくてん」に得点を数える条件をつなげる](https://www.pyxofy.com/content/images/2022/06/11-05-scratch-programming-table-tennis-2.png)
定義(ていぎ)「とくてん」には、このあともブロックを追加(ついか)していきます。どちらかの得点(とくてん)が11てんになるまでゲームをつづけるられるように、定義(ていぎ)していきますよ。
ゲームをつづけよう
得点(とくてん)したあとも、どちらかが11てんになるまでゲームがつづくようにします。メッセージブロックをつかって、ゲームをスタートさせる合図(あいず)をおくりましょう。
- 得点(とくてん)したあと、ゲームかいしをおくる
![「ゲームかいしをおくる」ブロックを2つ追加する 「ゲームかいしをおくる」ブロックを2つ追加する](https://www.pyxofy.com/content/images/2022/06/11-06-scratch-programming-table-tennis-2.png)
「はたがおされたとき」ではなく、「ゲームかいしをうけとったとき」に、ボールがうごくようにかえてください。得点(とくてん)したあとは、ボールがかくれた状態(じょうたい)ですね。「ひょうじする」ブロックも追加(ついか)しておきましょう。
- はたがおされたとき、得点(とくてん)を(0)にして、ゲームかいしをおくる
- ゲームかいしをうけとったとき、ボールを表示(ひょうじ)して、うごかす
![点数がはいった後もゲームが続くようにする 点数がはいった後もゲームが続くようにする](https://www.pyxofy.com/content/images/2022/06/11-07-scratch-programming-table-tennis-2.png)
ゲームのタイミングをととのえよう
得点(とくてん)したあと、すぐにまたボールがうごきだすと、ゲームをやりにくいですね。得点(とくてん)するときと、ボールをうごかしはじめるまえに、「(1)びょうまつ」ブロックをつかって、ゲームのタイミングをととのえましょう。
- 「(2)びょうまつ」、「(1)びょうまつ」を追加(ついか)する
![「()秒待つ」ブロックを3箇所に追加する 「()秒待つ」ブロックを3箇所に追加する](https://www.pyxofy.com/content/images/2022/06/11-08-scratch-programming-table-tennis-2.png)
ゲームをおわりにしよう
どちらかが11てんをとったらプログラムをとめて、ゲームをおわりにします。
- もしじぶんのとくてんが11、または、あいてのとくてんが11なら、すべてをとめる
![どちらかの得点が11になったらプログラムを止める どちらかの得点が11になったらプログラムを止める](https://www.pyxofy.com/content/images/2022/06/11-09-scratch-programming-table-tennis-2.png)
とくてんをかぞえるブロックのかんせい
「とくてん」ブロックを定義(ていぎ)することができました!ボールをうごかすプログラムのなかに「とくてん」ブロックを追加(ついか)したら、得点(とくてん) が11になるまで、ゲームがつづくようになりますよ。
- 「ずっと」のなかに「とくてん」を追加(ついか)する
![定義した「とくてん」ブロックを「ずっと」ブロックの一番下に追加する 定義した「とくてん」ブロックを「ずっと」ブロックの一番下に追加する](https://www.pyxofy.com/content/images/2022/06/11-10-scratch-programming-table-tennis-2.png)
つぎは、ラケットでうったときにボールのはやさがかわるようにしていきます。ゲーム完成(かんせい)まであとすこし!がんばりましょう!
ボールのはやさをかえる
卓球(たっきゅう)をやっていて、ずっとボールのはやさがおなじなのは、おもしろくないですね。変数(へんすう)と乱数(らんすう)をつかえば、どんなはやさのボールがくるかわからなくできますよ。
これより下は、Pyxofyメンバー限定公開です。メンバーになると読むことができます。登録方法は、『メンバー登録・ログイン方法』をご覧ください。
![](https://www.pyxofy.com/content/images/2024/07/cover-page-320-4.png)
「きょうからはじめるスクラッチプログラミング入門」by Pyxofy
Pyxofy から Scratch の基本をまとめた電子書籍を出版しました。
Apple Books・Kindle でご購入ください。