これまで2回に分けて「ソーシャルディスタンスチャレンジ」に使われているブラウンとほかのキャラクターとのきょりが近づいたときに赤い円が表示される仕組みを学びました。このユニークな仕組みを使ってソーシャルディスタンスを表現し、とてもおもしろいゲームにしていましたね。

前回までの記事はこちら
みんなの作品「ソーシャルディスタンスチャレンジ」のプログラムを見てみよう!<前編>
みんなの作品「ソーシャルディスタンスチャレンジ」のプログラムを見てみよう!<後編>

さて今回は赤い円を表示するときに使っていた信号機能を利用して、ゲームの改造にチャレンジしてみましょう!
singoukaizo
完成イメージ

動くタイミングをコントロールしよう
信号を使うことでプログラムの動くタイミングを自由に決めることができましたね。つまり信号を送るタイミングを変えることで、そのあとに連動するプログラムのタイミングもいっせいに変えることができるんです。実際にシーン「S1」タブのプログラムを改造してどのように動くタイミングが変わるか実験してみましょう。
下のリンクから作品ページに移動し、「ブロックを見る」ボタンをクリックしてワークスペースに移動します。
ソーシャルディスタンスチャレンジ

図16
ワークスペースに移動したらシーン「S1」タブをクリック

キャラクターレイヤーから「ステージクリア.png」や「記号_バツ」などいろいろなキャラクターをクリックして、それぞれのプログラムを見てみましょう。特にブロックのかたまりの一番上の緑色の開始カテゴリーのブロックに注目です。
「"ステージ開始"信号を受け取った時」というブロックから始まるプログラムが多いことに気がつきましたか? そこで、「ステージ開始」という信号がどこから送られているのか探してみると、「記号_バツ」というキャラクターに「シーンが始まった時」と「"ステージ開始"信号を送る」ブロックが組み合わさったプログラムがあることがわかります。ステージが始まるときに「記号_バツ」から「ステージ開始」信号が送られ、信号を受け取ったキャラクターたちのプログラムが動き始める仕組みになっているのです。だから、「"ステージ開始"信号を受け取った時」から始まるプログラムがたくさんあるんですね。

図18
「"ステージ開始"信号を受け取った時」使っている一例

そこで実験です。「記号_バツ」の「シーンが始まった時」ブロックと「"ステージ開始"信号を送る」ブロックのあいだに「制御」カテゴリーから「"2"秒待つ」ブロックを組み合わせてみましょう。そして「タイトル画面」タブをクリック、「スタートボタン」をクリックしてプログラムを実行してみてください。

図15
※必ず「タイトル画面」タブをクリックしてから実行すること。「S1」タブのままで実行した場合「シーンが始まった時」のプログラムではなく「スタートボタンをクリックした時」のプログラムが動いてしまうため。


するとこれまではシーン「S1」になったあとすぐにゲームが始まっていましたが、2秒後にゲームが始まりましたね。もし違いがわかりにくい場合は「"2"秒待つ」の2を10などの大きい数字に変えてください。
このように信号を送るタイミングを変えるだけで、連動するプログラムの動くタイミングを変えられることがわかりました。

■スタートをわかりやすく改造しよう
今のままだとシーンが変わったあとにゲームがいったん止まってから始まるだけでおもしろくありません。
そこでブラウンが「3、2、1」とカウントダウンをしてスタートと言ったあとに、ステージが始まり、キャラクターが動き出すというゲームの始まりがわかりやすいプログラムに改造してみます。
まずはシーンが始まったときにすぐに消したいキャラクターのプログラムを変えていきます。キャラクターレイヤーから「次のステージへ.png」、「ステージ-クリア.png」、「記号_バツ」をクリックして選びそれぞれに下の図のブロックを追加します。

スクリーンショット 2021-06-24 120144

ブロックの追加ができたら「タイトル画面」タブをクリックしてからプログラムを実行し、シーンが始まったときに3つのキャラクターが消えたかを確認します。確認ができたら「S1」タブの「記号_バツ」にもともとあった「シーンが始まった時」ブロックのかたまりを削除します。

図19

つぎに「歩くブラウン」をプログラミングしていきます。
「S1」タブ、キャラクターレイヤーの「歩くブラウン」の順にクリックして、「シーンが始まった時」ブロックを置き、下の図のようにカウントダウンの数字とスタート!を1秒ずつ言うようにして最後に「”ステージ開始”信号を送る」ブロックを組み合わせます。

スクリーンショット 2021-06-24 150227

ここまで組み合わせることができれば完成です! プログラムを実行して動きを確かめてみましょう!

singoukaizo

それでは今まで作ったプログラムの解説です。改造の前はシーンが始まったときに「記号_バツ」から「ステージ開始」信号が送られて、信号を受け取ったほかのキャラクターのプログラムがいっせいに動きだす仕組みになっていました。
そこで今回の改造では、ブラウンがカウントダウンをしてスタート!と言ったあとに信号を送ることでいきなりゲームが始まらないようにしました。また、「ステージクリア」などのキャラクターはシーンが始まったらすぐに表示しないようにしています。

今回はここまで。
「S1」の改造をしてみましたが、実は見た目も難しさも違うほかのシーンの「S2」や「S3」もほとんど同じプログラムで作られているので、今回の改造を見本にほかのシーンの改造にもチャレンジしてみてください。

●まずは登録! →  LINE entry
LINE entryの動画はこちら! →  YouTube
●公式Twitter フォロー、いいね!・RTもお願いします! → 公式Twitter
●ブックマーク登録お願いします →  公式ブログ