スクラッチプログラミング - ドッジボールゲームのつくりかた - Part 1
ボールをあててあそぶドッジボールゲームをつくってみましょう。矢印(やじるし)キーでプレイヤーを操作(そうさ)して左右(さゆう)にうごかしながら、相手(あいて)にむかってボールをなげるプログラムをつくります。
更新日:2023年12月27日
サンプルさくひんであそんでみよう
今回(こんかい)は、コンピューターと対戦(たいせん)するドッジボールを紹介(しょうかい)します。
ゲームのあそびかた
- 手前(てまえ)のキャラを、左右(さゆう)の矢印(やじるし)キー、または画面(がめん)タッチでうごかします。
- うわむき矢印(やじるし)キー、またはキャラをタップでボールをなげます。
(みどりのはたをおして、スタートです。プロジェクトは、ScratchのPyxofyページでもごらんになれます。)
Part 1でやること
Part 1では、自分(じぶん)が操作(そうさ)するプレイヤーを左右(さゆう)にうごかしながら、ボールをなげるプログラムをつくっていきますよ。

Part 2 では、対戦相手(たいせんあいて)をうごかして、ボールをなげるプログラムをつくります。 Part 3 では、ライフ(HP)を設定(せってい)して、ゲームを完成(かんせい)させます。
はいけいとスプライトをよういしよう
背景(はいけい)と、スプライトを4つ用意(ようい)してください。
- 自分(じぶん)が操作(そうさ)する、「プレイヤー」
- プレイヤーがなげる、「プレイヤーのボール」
- 対戦(たいせん)する、「あいて」
- 相手(あいて)がなげる、「あいてのボール」

最初(さいしょ)にプログラミングしていくのは、プレイヤーです。矢印(やじるし)キーでうごかして、ボールをなげられるようにしていきましょう。
プレイヤーをうごかそう
プレイヤーは、 矢印(やじるし)キーで操作(そうさ)できるようにします。よこにうごかすためにつかうのは、左右(さゆう)の矢印(やじるし)キーです。「もしはしについたら、はねかえる」ブロックで、ステージのはしにいきすぎないようにしてくださいね。
- よこにうごかす

ステージのはしではねかえるときに、さかさまにならないように、回転方法(かいてんほうほう)を左右(さゆう)のみにしておきます。最初(さいしょ)の位置(いち)もきめておきましょう。
- 回転方法(かいてんほうほう)と座標(ざひょう)を指定(してい)する

プレイヤーを左右(さゆう)にうごかせるようになりました!
ボールをなげよう
ボールをなげるためにつかうのは、うわむき矢印(やじるし)キーです。キーがおされたときに、ボールをなげる合図(あいず)を メッセージでおくります。
- キーがおされたとき、メッセージをおくる

メッセージをうけとるのは、プレイヤーがなげるボールです。「プレイヤーのボール」のスプライトをクリックしてから、ブロックを追加(ついか)していきますよ。
「プレイヤーのボール」をプログラミングしよう
メッセージをうけとるまでは、ボールはみえないようにしておきます。メッセージをうけとったときに、プレイヤーとおなじ位置(いち)に表示(ひょうじ)しましょう。
- 最初(さいしょ)はかくしておいて、ボールをなげるときに表示(ひょうじ)する

ボールを表示(ひょうじ)したとき、もしかしたら、ボールがプレイヤーより手前(てまえ)になっていませんか?もしそうだったら、プレイヤーに「さいぜんめんへいどうする」ブロックを追加(ついか)しておいてくださいね。

ボールをなげたあと、相手(あいて)のほうへうごいていく様子(ようす)をあらわすために、遠近感(えんきんかん)をだしましょう。最初(さいしょ)はボールのサイズをおおきくしておきます。
- 「おおきさを(150)%にする」を追加(ついか)する

相手(あいて)のほうへうごかしながら、だんだんちいさくしていきますよ。ボールがコートの外(そと)までうごいたら、みえなくしましょう。
- おおきさとy座標(ざひょう)をかえながらうごかして、かくす

うわむき矢印(やじるし)キーをおしたときに、ボールがプレイヤーのところに表示(ひょうじ)されて、相手(あいて)のほうへなげられるようになりました!

でもこのままだと、うわむき矢印(やじるし)キーを連打(れんだ)した場合(ばあい)、ボールがずっとプレイヤーのところに表示(ひょうじ)されてしまって、なげることができません。
ボールを1こずつなげよう
うわむき矢印(やじるし)キーの連打(れんだ)に、反応(はんのう)しないようにしましょう。ボールをなげおわるまで、つぎのボールをなげられないようにしますよ。そのためにつかうのは、変数(へんすう)です。
- 変数(へんすう)「ボール」をつくる

うわむき矢印(やじるし)キーをおしたときにボールをなげられるかどうかを、「ボール」という変数(へんすう)で確認(かくにん)できるようにします。
- 変数(へんすう)「ボール」が「1」のとき、ボールをなげられる
- 変数(へんすう)「ボール」が「0」のとき、ボールをなげられない
「プレイヤー」にブロックをついかしよう
「プレイヤー」のスプライトをクリックしてから、変数(へんすう)のブロックを追加(ついか)しましょう。うわむき矢印(やじるし)キーがおされたときに、変数(へんすう)を確認(かくにん)します。
- もし変数(へんすう)が「1」なら、メッセージをおくる

「プレイヤーのボール」にブロックをついかしよう
つづいて、「プレイヤーのボール」のスプライトをクリックしてから、変数(へんすう)のブロックを追加(ついか)します。
- 最初(さいしょ)はボールをなげられるようにしておく

メッセージをうけとったあと変数(へんすう)を「0」にして、うわむき矢印(やじるし)キーの連打(れんだ)に反応(はんのう)しないようにします。ボールがステージのうえまでうごいたら変数(へんすう)を「1」にして、ふたたびボールをなげられるようにしましょう。
- 「ボールを0にする」と「ボールを1にする」を追加(ついか)する

プログラムかんせい
プレイヤーを操作(そうさ)して、ボールを1こずつなげられるようになりました!



「きょうからはじめるスクラッチプログラミング入門」Pyxofy (著)
Pyxofy が Scratch の基本をまとめた電子書籍を出版しました。
Kindle・Apple Books からご購入ください。
まとめ
今回(こんかい)は、プレイヤーを左右(さゆう)にうごかして、ボールをなげられるようにプログラミングしました。
ここでは、プレイヤーを片手(かたて)で操作(そうさ)できるように、ボールをなげるときに「うわむき矢印(やじるし)キー」をつかいました。両手(りょうて)で操作(そうさ)したいときは、矢印(やじるし)きーではなく、「スペースキー」でボールをなげられるようにするといいですよ。
次回(じかい) は、自動(じどう)でうごく対戦相手(たいせんあいて)をつくっていきますよ。おたのしみに!
最後まで読んでいただき、ありがとうございます。この記事をシェアしてくれると嬉しいです!