- 1. スクラッチで順次処理を学ぼう!ネコを左右に動かすアニメーションの作り方【初心者向け】
- 2. スクラッチでネコが正方形に動くアニメーションの作り方|座標と向きの使い方
- 3. スクラッチでネコが左右にスケートするアニメーションの作り方|繰り返しの使い方
- 4. スクラッチでネコが走るアニメーションの作り方|コスチューム切り替えの使い方
- 5. スクラッチでネコがランダムな速さで走るアニメーションの作り方|乱数の使い方
- 6. スクラッチでロケットを矢印キーで動かす作り方|条件分岐の使い方
- 7. スクラッチで重力ゲームの作り方|もし〜なら・でなければブロック入門
- 8. スクラッチでスプライト同士がメッセージを送り合う作り方|みんなであいさつ (いまここ)
- 9. スクラッチでキャラが順番に集合するアニメの作り方|みんな集合
- 10. スクラッチで分裂するネコのアートの作り方【クローン入門】
- 11. スクラッチでネコの分身を飛ばす作り方【クローン入門】
- 12. スクラッチで音付きアニメーション!2台の車が走り抜ける作り方
- 13. スクラッチでペン拡張機能のスタンプを使った星のランダムアートの作り方
- 14. スクラッチのペン拡張機能を使って正三角形を描く方法と外角の仕組みを解説
- 15. スクラッチで足し算プログラムの作り方【変数と聞いて待つブロック入門】
- 16. スクラッチでサイコロシミュレーターの作り方│乱数とリストを使いこなそう
- 17. スクラッチでリスト操作11種類を完全マスターする作り方|宇宙船クルー名簿チュートリアル
- 18. スクラッチでペンとブロック定義を使った三角形・四角形の描き方
- 19. スクラッチでリンゴキャッチゲームの作り方!矢印キーとタイマーのアクションゲーム
- 20. スクラッチでネコ追跡ゲームの作り方|マウスで逃げ切る30秒サバイバル
- 21. スクラッチで攻撃シューティングゲームの作り方|クローンと確率でバトル設計
- 22. スクラッチで5秒ぴったり当てゲームの作り方|タイマーと入れ子条件分岐を学ぼう
- 23. スクラッチでカスタムブロック(関数)の作り方|足し算・引き算ツール入門
- 24. スクラッチで宇宙シューティングゲームの作り方|スコアで激化する難易度システム
- 25. スクラッチで全方向シューティングゲームを作ろう!魔法少女とスライム迎撃バトル
- 26. スクラッチで潜水艦シューティングゲームの作り方|魚雷を撃って敵を倒そう
- 27. スクラッチで鳥避けフライトゲームの作り方|カラスを避けて荷物を集めよう
- 28. スクラッチでキャッチゲームの作り方!雪の結晶を集めて氷柱を避けるアクションを作ろう
さぁ、スクラッチでナニ作る!?
魔法使いから弟子1、弟子1から弟子2・弟子3へとメッセージが枝分かれしていく構造が効いている。2つのメッセージ名を使い分けることで、全員一斉ではなく順番通りに連鎖させるタイミング制御を、条件分岐なしで実現している。1対1リレーと1対多ファンアウトを組み合わせたこの設計が、メッセージ機能の使いどころを端的に示している。どう組み立てているか、作り方を見ていこう。 参考資料:スクラッチプログラミング事例大全集
動画で見てみよう
チュートリアルの元になった作品
今回の目標
- ウィザードが挨拶してメッセージを送る
- 弟子1がメッセージを受け取って返事し、次のメッセージを送る
- 弟子2と弟子3が同時にメッセージを受け取って挨拶する
スターター作品をリミックスしよう
このチュートリアルにはスターター作品があります。使わなくても大丈夫だけど、最低限の素材などが用意されてるので便利です。
スターター作品をダウンロード
#1ウィザードの配置
準備
スプライト「ウィザード」を開く
| スプライトについて |
|---|
| 画面右側に立つ魔法使い。ゲーム開始時に「こんばんは」と挨拶し、弟子たちへ呼びかけのメッセージを送る |
| どんな役割か |
| ウィザードが画面右に現れて「こんばんは」って言うとこを作るよ。言い終わったら弟子を呼ぶメッセージを送る流れまで一緒に組もう! |
実装
まずはウィザードの初期設定から。 が押されたときのあとに回転方法を「左右のみ」にして向きを-90度(左向き)にし、座標(160, -40)に配置するよ。回転方法を「左右のみ」にしておくと、左を向いたときにキャラがひっくり返らないんだ。
向きを-90度にすると左向きになるのがポイント。Scratchでは90度が右、-90度が左、0度が上を向く仕組みだよ。
#2あいさつとメッセージ送信
準備
メッセージ「魔法使いの呼びかけ」を追加
ウィザードが弟子たちに呼びかけるときに送るメッセージ
実装
ウィザードの位置が決まったら、次はあいさつの動作を足そう。( ) と ( ) 秒言うで「こんばんは。」と1秒間言って、そのあと( ) を送るで「魔法使いの呼びかけ」メッセージを送る流れだよ。
この( ) を送るが今回のカギになるブロック。メッセージを送ると、そのメッセージを待っている全スプライトが一斉に動き出す。テレビの放送みたいなもので、1つの局が発信したら受信機を持ってる人全員に届く仕組みなんだ。
#3弟子1の配置
準備
スプライト「弟子1」を開く
| スプライトについて |
|---|
| 画面左側に立つ弟子。魔法使いの呼びかけを受けて「こんばんは」と返事し、他の弟子へ返答メッセージを送る |
| どんな役割か |
| 弟子1が魔法使いに呼ばれたら「こんばんは」って返事するとこを作るよ。返事が終わったら他の弟子にも知らせるメッセージを送る流れも組んでいこう! |
実装
が押されたときで旗がクリックされたら、座標(-170, -50)に配置する。画面の左側に立たせるだけのシンプルなコードだね。
#4弟子1の返事
準備
メッセージ「弟子の返答」を追加
弟子1が返事を終えた後、他の弟子たちへ知らせるために送るメッセージ
実装
弟子1がウィザードからのメッセージを受け取って返事をするコードを作るよ。( ) を受け取ったときで「魔法使いの呼びかけ」を受け取ったら、「こんばんは。」と1秒言ったあと、( ) を送るで今度は「弟子の返答」という別のメッセージを送るんだ。
つまりメッセージのリレーが起きる仕組みだよ。ウィザード→弟子1→次の弟子たちへ、とバトンが渡っていくイメージだね。
#5弟子2の配置
準備
スプライト「弟子2」を開く
| スプライトについて |
|---|
| 画面中央下に立つ弟子。弟子1の返答メッセージを受け取って「こんばんは」と挨拶する |
| どんな役割か |
| 弟子2が弟子1からのメッセージを受け取って「こんばんは」って挨拶するとこを作るよ。メッセージを受け取ってセリフを言う流れをサクッと作ろう! |
実装
弟子1と同じパターンで、 が押されたときのあと座標(-30, -130)に配置するよ。画面の中央下あたりに立つ位置だね。
#6弟子2のあいさつ
弟子2は弟子1が送った「弟子の返答」メッセージを受け取って動くよ。( ) を受け取ったときで「弟子の返答」を受け取ったら、「こんばんは。」と1秒間言う。
弟子1のときと違って、弟子2は次にメッセージを送る必要がないんだ。あいさつを受けて返事をする、それだけのシンプルな役割だよ。
#7弟子3の配置
準備
スプライト「弟子3」を開く
| スプライトについて |
|---|
| 画面左上に立つ弟子。弟子1の返答メッセージを受け取って「こんばんは」と挨拶する |
| どんな役割か |
| 弟子3も弟子1からのメッセージを受け取って「こんばんは」って挨拶するよ。弟子2と同じ仕組みだから、パターンをつかんで一気に作ろう! |
実装
が押されたときのあと座標(-80, 110)に移動させる。こっちは画面の左上あたり。4体のキャラクターがそれぞれ違う位置に散らばるレイアウトになっているんだ。
#8弟子3のあいさつ
最後に弟子3もあいさつするコードを作ろう。弟子2とまったく同じ仕組みで、( ) を受け取ったときで「弟子の返答」を受け取ったら「こんばんは。」と1秒間言うコードだよ。
ここで面白いのが、弟子2と弟子3は同じ「弟子の返答」メッセージを受け取って同時にあいさつするってこと。1つのメッセージで複数のスプライトが一斉に反応できる、これがメッセージの便利なところ。次回は「みんな集合」で、スプライト同士の連携をさらに深めていこう!
まとめ
今回はメッセージを使ってスプライト同士を連携させる仕組みを学んだよ。「送る」と「受け取ったとき」を組み合わせるだけで、こんなにきれいなリレーができるんだ。メッセージ名を変えることで順番をコントロールできるのが今回の最大のポイント。次回は「みんな集合」でさらに面白い連携を作っていこう!