スクラッチプログラミング - けしゴムおとしゲーム|モバイル対応(たいおう)
マウスやタッチでけしゴムをひっぱってとばす「けしゴムおとし」を Scratch でつくります。キーボードをつかわずにけしゴムをうごかすので、タブレットなどでもあそぶことができるゲームです。
けしゴムをひっぱってとばそう
この記事(きじ)では、 Scratch (スクラッチ)でけしゴムおとしゲームをつくる方法(ほうほう)を紹介(しょうかい)します。
けしゴムおとしは、机(つくえ)の上(うえ)にあるけしゴムをとばして、相手(あいて)のけしゴムを机(つくえ)からおとすゲームです。けしゴムは、マウスまたはタッチでうごかします。パソコンだけでなく、キーボードなしのタブレットでも簡単(かんたん)に操作(そうさ)できるゲームなので、ぜひ一緒(いっしょ)につくってみましょう。
サンプルプロジェクト
下(した)にあるのは、けしゴムおとしのサンプルプロジェクトです。記事(きじ)をよみすすめる前(まえ)に、けしゴムのうごきをみておいてください。
- ユーザーがうごかせるのは、青(あお)けしゴム
- 赤(あか)けしゴムは、自動(じどう)でうごく
- 机(つくえ)からおちたら、ゲーム終了(しゅうりょう)

けしゴムのスプライトを用意(ようい)しよう
最初(さいしょ)に、けしゴムのスプライトを2つ用意(ようい)します。おたがいにむかいあうようにえがいてください。
- 青(あお)けしゴム:左側(ひだりがわ)に配置(はいち)するので、右(みぎ)むきです。
- 赤(あか)けしゴム:右側(みぎがわ)に配置(はいち)するので、左(ひだり)むきです。

ゲームの舞台(ぶたい)となる机(つくえ)は、スプライトまたは背景(はいけい)でつくっておいてください。
最初(さいしょ)の設定(せってい)
ここからは、青(あお)けしゴムのスプライトを選択(せんたく)して、ブロックをつなげていきます。
まずは、ゲームにつかう変数(へんすう)を用意(ようい)して、最初(さいしょ)の値(あたい)を設定(せってい)しましょう。
ゲーム中(ちゅう)?
:ゲームの最中(さいちゅう)か、ゲームが終了(しゅうりょう)したかを管理(かんり)する変数(へんすう)です。はい
にして、ゲームをはじめられるようにします。順番(じゅんばん)
:どちらのターンかを指示(しじ)する変数(へんすう)です。青(あお)
にして、青(あお)けしゴムからうごかせるようにします。青(あお)のうごく量(りょう)
:青(あお)けしゴムがどれだけうごくかをきめる変数(へんすう)です。最初(さいしょ)は0
です。

つづけて、青(あお)けしゴムをうごかしはじめる前(まえ)の、最初(さいしょ)の状態(じょうたい)を設定(せってい)しましょう。
- おおきさ:まけたときにサイズをちいさくするので、最初(さいしょ)は
100
にしておきます。 - 座標(ざひょう):ランダムにして、毎回(まいかい)ちがう位置(いち)からはじまるようにします。
- むき:うごくときに回転(かいてん)しながらむきがかわるので、最初(さいしょ)は相手(あいて)のほうをむくように
90
にしておきます。 - メッセージをおくる:青(あお)のターンからはじまるようにします。

ここまでで、青(あお)けしゴムをうごかす準備(じゅんび)ができました。
青(あお)けしゴムをうごかそう
青(あお)けしゴムをうごかせるのは、メッセージをうけとったときです。青(あお)のばん をうけとったとき
の下(した)にブロックをつなげていきましょう。
うごく量(りょう)をきめる
けしゴムをうごかす前(まえ)に、どれだけうごくかをきめます。
- けしゴムが、マウスまたは指(ゆび)でおされるのをまちます。
青(あお)のうごく量(りょう)
は、マウスをおしている間(あいだ)、けしゴムとマウスの位置(いち)から計算(けいさん)します。- うごく量(りょう)がおおきくなりすぎないように、最大値(さいだいち)をきめておきます。

青(あお)のうごく量(りょう)
にはいる値(あたい)は、かならず四捨五入(ししゃごにゅう)して整数(せいすう)になるようにしてください。理由(りゆう)は、もし変数(へんすう)の値(あたい)が小数(しょうすう)だと、この後(あと)追加(ついか)する「青(あお)のうごく量(りょう)
が 0
になるまで青(あお)けしゴムうごかす」というブロックがきかなくなってしまうからです。
また、うごく量(りょう)の最大値(さいだいち)をきめておかないと、青(あお)けしゴムがつよくなりすぎてしまうので、適当(てきとう)な値(あたい)を設定(せってい)しておいてください。
うごく方向(ほうこう)をきめる
つづいて、マウスまたは指(ゆび)がはなされたら、けしゴムをうごかします。うごかしはじめる前(まえ)に、むきをきめて、そのむきを変数(へんすう)に保存(ほぞん)しておきましょう。
- むきを、マウスのほうにします。
- むきを
青(あお)の角度(かくど)
に保存(ほぞん)します。

今回(こんかい)つくっていくスクリプトでは、このように、うごく方向(ほうこう)を変数(へんすう)に保存(ほぞん)しておくことが重要(じゅうよう)です。なぜかというと、けしゴムをうごかすために、sin サイン・cos コサインのブロックをつかっていくからです。
- 「sin サイン・cos コサインなんて、むずかしそう …。」
- 「マウスでむきをきめたなら、その方向(ほうこう)へ
◯ ほうごかす
でうごかせばいいんじゃないの?」
そんなふうにおもう方(かた)もいるかもしれませんね。ただ今回(こんかい)は、けしゴムを回転(かいてん)させながらうごかすので、うごいている間(あいだ)はずっとむきが変化(へんか)します。そのため、 ◯ ほうごかす
ではまっすぐうごかすことができません。
sin サイン・cos コサインをつかってうごかす理由(りゆう)は、途中(とちゅう)でむきがかわっても、まっすぐすすむようにするためです。
- sin サイン・cos コサインでは、最初(さいしょ)のむきをもとにx 座標(ざひょう)と y 座標(ざひょう)を計算(けいさん)します。
- そのため、回転(かいてん)させながらでも、最初(さいしょ)にきめた方向(ほうこう)へまっすぐうごかすことができます。
sin サイン・cos コサインについては、以下(いか)の記事(きじ)で解説(かいせつ)しているので参考(さんこう)にしてください。

回転(かいてん)させながらうごかす
では、けしゴムをうごかすためのブロックをつなげていきましょう。
青(あお)のうごく量(りょう)
が0
になるまでうごかしつづけます。青(あお)の角度(かくど)
をつかって、x 座標(ざひょう)を sin サイン、y 座標(ざひょう)を cos コサインできめます。さらに、青(あお)のうごく量(りょう)
をかけて、うごく距離(きょり)もきめます。- 同時(どうじ)に回転(かいてん)させます。
- だんだんうごく量(りょう)をへらします。

赤(あか)けしゴムにふれた場合(ばあい)
次(つぎ)に、相手(あいて)にあたった場合(ばあい)のブロックもつなげましょう。
- うごいている途中(とちゅう)で赤(あか)けしゴムにふれたなら
青(あお)のうごく量(りょう)
に1
をたして赤(あか)のうごく量(りょう)
に保存(ほぞん)し、この値(あたい)を利用(りよう)して赤(あか)けしゴムがとばされるようにします。- 青(あお)けしゴムのうごきをとめます。
- メッセージをおくって、赤(あか)けしゴムがとばされるをまちます。

赤(あか)けしゴムのターンにする
けしゴムが机(つくえ)からおちていないなら、ゲーム続行(ぞっこう)です。
- ゲーム中(ちゅう)であることを変数(へんすう)で確認(かくにん)します。
- ゲーム中(ちゅう)なら、次(つぎ)は赤(あか)けしゴムのターンにします。
- 赤(あか)けしゴムがうごくよう、メッセージをおくります。

ここまでで、青(あお)けしゴムをうごかして、赤(あか)けしゴムのターンへきりかえるスクリプトができました。
赤(あか)けしゴムをうごかそう
今度(こんど)は、赤(あか)けしゴムのスクリプトです。最初(さいしょ)の設定(せってい)は次(つぎ)のようにしてください。

赤(あか)けしゴムは自動(じどう)でうごかします。青(あお)けしゴムとちがって、うごく量(りょう)や方向(ほうこう)をマウスできめる必要(ひつよう)はありません。
- メッセージをうけとって、すこしまってからうごくようにします。
- うごく量(りょう)は乱数(らんすう)にします。
- むきを、青(あお)けしゴムのほうにして、
赤(あか)の角度(かくど)
に保存(ほぞん)します。

うごく量(りょう)はランダムですが、実際(じっさい)にプレイしてみた後(あと)で、赤(あか)けしゴムがつよすぎたら数値(すうち)をちいさめにする、よわすぎたら数値(すうち)をおおきめにする、など調整(ちょうせい)してください。
これ以降(いこう)は、さきほどつくった青(あお)けしゴムのスクリプトとおなじかんがえかたです。下(した)のようにブロックをつなげましょう。

以上(いじょう)で、赤(あか)けしゴムをうごかして、青(あお)けしゴムのターンへきりかえるスクリプトができました。
けしゴムをとばそう
ここからは、けしゴムをあててとばすスクリプトをつくっていきましょう。
青(あお)けしゴムのスクリプト
まずは、青(あお)けしゴムがとばされる場合(ばあい)です。赤(あか)けしゴムからの 青(あお)をとばす
というメッセージをうけとったら、回転(かいてん)させながらうごかします。

ここでも、むきをかえながらうごかすために、sin サイン・cos コサインをつかっています。青(あお)けしゴムをとばす方向(ほうこう)をきめるためにつかうのは、赤(あか)の角度(かくど)
だということに注意(ちゅうい)してくださいね。
さて、けしゴムは両方(りょうほう)とも回転(かいてん)させながらうごかすので、場合(ばあい)によっては、うごく量(りょう)が 0
になったとき、下(した)のようにかさなっていることがあります。

これをふせぐために、さらにブロックをつなげましょう。
- うごく量(りょう)が
0
になった後(あと)で、赤(あか)けしゴムにふれているなら - 赤(あか)けしゴムからはなれるまで、すこしずつうごかします。

これで、青(あお)けしゴムをとばすスクリプトができました。
赤(あか)けしゴムのスクリプト
赤(あか)けしゴムをとばすときも、かんがえかたはおなじです。下(した)のようにブロックをつなげましょう。

以上(いじょう)で、けしゴムをとばすうごきができました。
机(つくえ)からおちたらゲーム終了(しゅうりょう)
けしゴムが机(つくえ)からおちたら、ゲーム終了(しゅうりょう)です。机(つくえ)からおちたことを判定(はんてい)できるよう、あたらしいスプライトを用意(ようい)して、スクリプトをつくっていきます。
机(つくえ)のサイズよりひとまわりおおきい枠線(わくせん)のスプライトをつくりましょう。このスプライトはみえないようにするために、背景(はいけい)とおなじ色(いろ)にしてください。

枠線(わくせん)をどれくらいのサイズにするかは、実際(じっさい)にプレイしてみた後(あと)で、けしゴムが机(つくえ)からはみだしたときにふれるおおきさに調整(ちょうせい)してください。
ブロックは下(した)のようにつなげましょう。

これで、机(つくえ)の外側(そとがわ)に配置(はいち)するスプライトが完成(かんせい)です。
けしゴムがおちたときのスクリプト
次(つぎ)は、けしゴムが机(つくえ)からおちたときのスクリプトをつくっていきましょう。
このスクリプトは、メッセージをうけとったときではなく、緑(みどり)の旗(はた)がおされたとき
の下(した)につなげていきます。なぜなら、相手(あいて)にとばされたときだけでなく、自滅(じめつ)した場合(ばあい)でもゲーム終了(しゅうりょう)なので、机(つくえ)からおちたかどうかをゲーム中(ちゅう)ずっとチェックできるようにするためです。
青(あお)けしゴムのスプライトを選択(せんたく)して、下(した)のようにブロックをつなげましょう。
- 机(つくえ)の外側(そとがわ)のスプライトにふれたなら
ゲーム中(ちゅう)?
をいいえ
にして、これ以上(いじょう)けしゴムをうごかせないようにします。- 赤(あか)けしゴムが勝利(しょうり)したことをしらせるためのメッセージをおくります。
- 回転(かいてん)させながらサイズをちいさくして、ゲームをとめます。

赤(あか)けしゴムがおちた場合(ばあい)も、かんがえかたはおなじです。赤(あか)けしゴムのスプライトを選択(せんたく)して、下(した)のようにブロックをつなげましょう。

以上(いじょう)で、けしゴムが机(つくえ)からおちたらゲームをおわりにするスクリプトができました。ここまでで、けしゴムに関連(かんれん)するうごきは完成(かんせい)です。
文字(もじ)を表示(ひょうじ)しよう
ゲームをわかりやすくするために、文字(もじ)のスプライトを用意(ようい)しましょう。
順番(じゅんばん)をしめすコスチュームと、どちらが勝利(しょうり)したかをしめすコスチュームをつくってください。

ブロックは下(した)のようにつなげましょう。
- 位置(いち)をきめて、けしゴムより手前(てまえ)に表示(ひょうじ)されるようにします。
- ゲーム中(ちゅう)は、
順番(じゅんばん)
の値(あたい)におうじてコスチュームをきりかえます。 - メッセージをうけとったら、かちをしめすコスチュームにします。

以上(いじょう)で、文字(もじ)を表示(ひょうじ)することができるようになりました。
ペンでねらいをさだめよう
最後(さいご)に、ペンで線(せん)をえがくスクリプトです。青(あお)けしゴムをうごかすときに、ねらっている方向(ほうこう)をペンでえがいて、ねらいをさだめられるようにします。
ペンを設定(せってい)する
あたらしいスプライトと、拡張機能(かくちょうきのう)のペンを追加(ついか)してから、ブロックをつなげていきましょう。スプライトは、なにもえがいていない、からっぽのものでOKです。
- ペンのふとさと色(いろ)を指定(してい)します。色(いろ)は、机(つくえ)の外側(そとがわ)のスプライト・背景色(はいけいしょく)とおなじにします。
- 余計(よけい)な線(せん)がえがかれないように、
ペンをあげる
とぜんぶけす
をつなげておきます。

ペンの色(いろ)を、机(つくえ)の外側(そとがわ)のスプライト・背景色(はいけいしょく)とおなじにするのは、机(つくえ)の外側(そとがわ)まで線(せん)がのびたときに、線(せん)がみえないようにするためです。
線(せん)をえがく、けす
次(つぎ)に、メッセージにおうじて、線(せん)をかいたりけしたりしましょう。
ねらう をうけとったとき
:ねらいをさだめるときは、青(あお)けしゴムのところからマウスの位置(いち)まで線(せん)がえがかれるようにします。ねらいをけす をうけとったとき
:青(あお)けしゴムがうごきだすときは、線(せん)をけします。

以上(いじょう)で、ねらいをさだめるペンのスクリプトができました。
青(あお)けしゴムのスクリプト
上(うえ)でつかったメッセージをおくるのは、青(あお)けしゴムです。青(あお)けしゴムを選択(せんたく)してから、下(した)のようにブロックを追加(ついか)してください。
- マウスがおされている間(あいだ)、ねらいつづけます。
- マウスがはなされたら、ねらいをけします。

スクリプト完成(かんせい)
けしゴムおとしのスクリプトが完成(かんせい)です。





Scratch の Pyxofy ページへいって、実際(じっさい)にけしゴムおとしであそんでみてください。Scratch 消しゴム落としゲーム by Pyxofy


「きょうからはじめるスクラッチプログラミング入門」Pyxofy (著)
Pyxofy が Scratch の基本をまとめた電子書籍を出版しました。
Kindle・Apple Books からご購入ください。
まとめ
今回(こんかい)は、Scratch でつくるけしゴムおとしゲームを紹介(しょうかい)しました。スクリプトをつくるときに工夫(くふう)した点(てん)は、以下(いか)のとおりです。
- 回転(かいてん)させながらうごかすために、sin サイン・cos コサインをつかう
- 机(つくえ)からおちたことを判定(はんてい)するためのスプライトを、机(つくえ)の外側(そとがわ)にみえないように配置(はいち)する
- ねらいをさだめるための線(せん)をペンでえがく
赤(あか)けしゴムは自動(じどう)でうごくようにしましたが、こちらも青(あお)けしゴムのようにマウスをおしてうごかせるようにすれば、ふたりプレイができるようになりますね。ぜひつくってみてください!
最後まで読んでいただき、ありがとうございます。この記事をシェアしてくれると嬉しいです!
SNS で Pyxofy とつながりましょう! LinkedIn・ Threads・Bluesky・ Mastodon・ X (Twitter) @pyxofy・ Facebook