- ① 操作・剣・召喚
- ② ダメージ・クリア (いまここ)
さぁ、スクラッチでナニ作る!?
チュートリアルの元になった作品
マインクラフト風のアクションバトルゲーム。プレイヤー(スティーブ)を操作してウィザーボスと戦う。物理ベースの移動(摩擦・重力・壁キック)、剣での攻撃、ウィザーの弾丸回避、HP管理を行い、ウィザーを倒すとクリアタイムが表示される。
今回の目標
- 弾丸がスティーブに命中した時のダメージ処理とダブルダメージの仕組みを作る
- ウィザーのHPバーと剣のダメージ判定、攻撃ボタン、勝利・敗北のロジックを実装する
- ゲームクリアとゲームオーバーの演出を全スプライトに設定して完成させる
#1剣で弾丸を破壊(キーボード)
( ) を受け取ったとき で「攻撃」メッセージを受信したら、 もし ( ) なら と ( ) に触れた で剣に触れているかチェックするよ。触れていたら ( ) 回繰り返す で6回、 ( ) 秒待つ と 次のコスチュームにする で爆発アニメーションを再生するんだ。
#2剣破壊の完了処理
( ) の音を鳴らす で「get4」を再生して 隠す で隠し、 ( ) 秒待つ で1秒待ってから このクローンを削除する で完全に削除するよ。1秒待つのは効果音が鳴り終わるまでの時間を確保するためだよ。
#3攻撃ボタンで弾丸を破壊
( ) を受け取ったとき で「攻撃準備」メッセージを受信したら、 もし ( ) なら と ( ) に触れた で剣に触れているかチェックするよ。触れていたら ( ) 回繰り返す で6回爆発アニメーションを再生するんだ。
「攻撃」(キーボード)と「攻撃準備」(ボタン)の2つの異なるメッセージで同じ処理を実行しているよ。メッセージが違うだけで、弾丸の破壊処理は全く同じパターンだね。
#4ボタン攻撃破壊の完了
( ) の音を鳴らす で「get4」を再生して 隠す で隠し、 ( ) 秒待つ で1秒後に このクローンを削除する で削除するよ。キーボード攻撃の完了処理と全く同じコードだね。
#5ウィザーへのダメージ
準備
スプライト「ウィザー」を開く
| スプライトについて |
|---|
| ボスエネミー。フェーズ遷移、移動、弾丸発射、被ダメージを管理する |
| どんな役割か |
| ウィザーボスを作るよ。召喚演出から弾を撃ってくるバトルフェーズまで、メッセージ連鎖でフェーズ管理していこう。 |
メッセージ「痛いヨォぉぉ」を追加
実装
( ) を受け取ったとき で「攻撃」メッセージを受信したら、 もし ( ) なら と ( ) に触れた で剣に触れているかチェックするよ。当たっていたら ( ) を ( ) ずつ変える で「★ウィザーHP」を-1して、 ( ) の音を鳴らす で「ダメージ」の効果音を鳴らし、 ( ) を送る で「痛いヨォぉぉ」メッセージを送信するんだ。
「痛いヨォぉぉ」メッセージはウィザーHPバーに届いて、バーの表示を更新するトリガーになるよ。変数を減らすだけじゃなく、メッセージで他のスプライトに変化を伝える連鎖がここでも使われているんだ。
#6ウィザーHPバーの準備
準備
スプライト「ウィザーHPバー」を開く
| スプライトについて |
|---|
| ウィザーHP表示。43段階のコスチュームでウィザーHPの減少を表現する |
| どんな役割か |
| ウィザーのHPバーを作るよ。剣で攻撃が当たるたびにコスチュームが切り替わって、ウィザーのHPが減っていく様子を表示するよ。 |
実装
が押されたとき で x座標を ( ) 、y座標を ( ) にする を座標(7, 133)の画面上部に配置して、 コスチュームを ( ) にする で「HP」(満タン状態)のコスチュームにセットするよ。 隠す で最初は隠しておくんだ。ウィザーが召喚されるまでバーは見えない方がいいからね。
#7HPバーの表示
( ) を受け取ったとき で「召喚ウィーザ!」メッセージを受信したら 表示する で表示するよ。メッセージ1つで、ウィザーの登場と同時にHPバーも自動的に現れる仕組みだね。
#8HPバーの減少と敗北判定
準備
メッセージ「ウィーザ敗北」を追加
実装
( ) を受け取ったとき で「痛いヨォぉぉ」を受信するたびに 次のコスチュームにする でバーを1コマ減らすよ。 もし ( ) なら と ( ) = ( ) で (コスチューム番号)が43になったかチェックして、43に達したら ( ) を送る で「ウィーザ敗北」メッセージを送信するんだ。
コスチューム番号をHP残量の代わりに使うのがこのHPバーの仕組みだよ。43段階もあるから、1ヒットごとにバーが少しずつ減っていく細かい演出ができるんだ。
#9プレイヤーHPバーの初期化
準備
スプライト「プレイヤーHPバー」を開く
プレイヤーHPバー| スプライトについて |
|---|
| プレイヤーHP表示。20段階のコスチュームでHP減少を表現する |
| どんな役割か |
| プレイヤーのHPバーを作るよ。ダメージを受けるたびにコスチュームが切り替わって、HPの残量がわかるようにするんだ。 |
変数「★HP」を追加
プレイヤーの体力ポイント
実装
が押されたとき で 表示する 、 x座標を ( ) 、y座標を ( ) にする で座標(-1, -144)の画面下部に配置するよ。 大きさを ( ) %にする を150%にして、 ( ) を ( ) にする で「★HP」を20にセットし、 コスチュームを ( ) にする で「health20」(HP満タン)のコスチュームにするんだ。
#10被ダメージとHP減少
準備
メッセージ「おしまい」を追加
実装
( ) を受け取ったとき で「攻撃された」を受信したら ( ) を ( ) ずつ変える で「★HP」を-1するよ。 もし ( ) なら と ( ) = ( ) で「★HP」が0かチェックして、0なら ( ) を送る で「おしまい」メッセージを送信するんだ。最後に 次のコスチュームにする でバーを1コマ進めて、HPの減少を視覚的に表示するよ。
#11ダブルダメージの仕組み
準備
スプライト「ダメージ処理」を開く
| スプライトについて |
|---|
| ダメージ追加処理。攻撃されたメッセージを受信してHPを追加で減らす |
| どんな役割か |
| ダメージ追加処理を担当するスプライトを作るよ。攻撃を受けたときにHPをさらに減らして、1回の攻撃で2ダメージにするんだ。 |
実装
( ) を受け取ったとき で「攻撃された」を受信したら、step-59と同じく ( ) を ( ) ずつ変える で「★HP」を-1して、 もし ( ) なら で0チェック→ ( ) を送る で「おしまい」→ 次のコスチュームにする でバー更新するよ。
#12被ダメージ効果音
準備
スプライト「スティーブ」を開く
スティーブ| スプライトについて |
|---|
| プレイヤーキャラクター。物理ベースの移動(摩擦・重力・壁キック)を行う |
| どんな役割か |
| スティーブを操作キャラクターとして設定するよ。左右移動にジャンプ、壁キックなど物理的な動きをプログラミングして、本格的なアクション操作を作っていこう。 |
実装
( ) を受け取ったとき で「攻撃された」を受信したら ( ) の音を鳴らす で「hurt」の効果音を再生するよ。これで弾が当たるとHPバーが減り、効果音が鳴り、ダブルダメージも入る、という3つのスプライトが同時に反応する仕組みが完成したね。
#13クリアタイムの初期化
準備
変数「★クリアタイム」を追加
ゲームクリアまでの経過時間を計測する変数
実装
が押されたとき で ( ) を ( ) にする で「★クリアタイム」を0にリセットし、 変数 ( ) を隠す で画面上の表示を隠しておくよ。プレイ中はタイマーが見えない方が集中できるからね。
#14タイマーのカウント
が押されたとき で ずっと を開始して、 ( ) を ( ) ずつ変える で「★クリアタイム」を1ずつ増やし、 ( ) 秒待つ で1秒待つんだ。これでゲーム開始から何秒経ったかがカウントされるよ。
#15ウィザーHPバーの非表示
準備
スプライト「ウィザーHPバー」を開く
実装
( ) を受け取ったとき で「ウィーザ敗北」を受信したら 隠す で隠すよ。バトルが終わったあとにHPバーが残っていたら違和感があるからね。
#16ウィザーの死亡演出
準備
スプライト「ウィザー」を開く
実装
( ) を受け取ったとき で「ウィーザ敗北」を受信したら、まず で「スプライトの他のスクリプトを止める」を実行して移動や射撃を停止するよ。 x座標を ( ) 、y座標を ( ) にする で座標(0, 37)の中央に移動してから、 ( ) 回繰り返す で20回 ( ) の効果を ( ) ずつ変える の明るさを5ずつ上げていくんだ。
20回×明るさ5で合計100になるから、ウィザーが真っ白に光って消滅する演出になるよ。
#17最終爆発の起動
準備
メッセージ「最後の爆発」を追加
実装
( ) 秒待つ で0.5秒の溜めを作ってから、 ( ) を送る で「最後の爆発」メッセージを送信して 隠す でウィザーを消すよ。この「最後の爆発」が、召喚時と同じ3箇所同時爆発のトリガーになるんだ。
#18最終爆発(中央)の準備
準備
スプライト「爆発」を開く
爆発| スプライトについて |
|---|
| 中央位置の爆発エフェクト。召喚時と最終爆発時にアニメーションを再生する |
| どんな役割か |
| 中央位置の爆発エフェクトを作るよ。ウィザー召喚時と最後の爆発時にアニメーションを再生するんだ。 |
実装
( ) を受け取ったとき で「最後の爆発」を受信したら、 コスチュームを ( ) にする で「explosion_0」にセットして 表示する で表示するよ。 x座標を ( ) 、y座標を ( ) にする で座標(-4, 24)に配置するんだ。
#19中央爆発のアニメーション
( ) 回繰り返す で7回、 ( ) 秒待つ で極小時間を入れつつ 次のコスチュームにする でコスチュームを切り替えるよ。召喚時の爆発と全く同じ7コマのアニメーションだね。
#20最終爆発からゲームクリアへ
準備
メッセージ「ゲーム終了です」を追加
実装
( ) の音を鳴らす で「get4」を再生して 隠す で隠し、 ( ) 秒待つ で1秒後に ( ) を送る で「ゲーム終了です」を送信するよ。このメッセージ1つで、クリア画面の表示、スプライトの非表示、ゲームの停止が一斉に起動するんだ。
#21最終爆発(右上)の準備
準備
スプライト「爆発2」を開く
爆発2| スプライトについて |
|---|
| 右上位置の爆発エフェクト。Explosionと同時に異なる座標で再生する |
| どんな役割か |
| 右上位置の爆発エフェクトを作るよ。中央の爆発と同時に再生されて、迫力のある演出になるよ。 |
実装
( ) を受け取ったとき で「最後の爆発」を受信して、 コスチュームを ( ) にする で「explosion_0」にし、 表示する で表示して x座標を ( ) 、y座標を ( ) にする で座標(29, 67)に移動するよ。召喚時の爆発2と同じスプライトが、違う位置で再び使われるんだ。
#22右上爆発のアニメーションと完了
( ) 回繰り返す で7回コスチュームを切り替えてアニメーション再生し、 ( ) の音を鳴らす で「get4」を鳴らして 隠す で隠すよ。 ( ) 秒待つ で1秒待って完了だよ。3つの爆発が同じ「最後の爆発」メッセージで同時に動くから、圧巻のフィナーレになるんだ。
#23最終爆発(左上)の準備
準備
スプライト「爆発3」を開く
爆発3| スプライトについて |
|---|
| 左上位置の爆発エフェクト。Explosionと同時に異なる座標で再生する |
| どんな役割か |
| 左上位置の爆発エフェクトを作るよ。3つの爆発が同時に光って、ウィザー召喚のインパクトを演出するんだ。 |
実装
( ) を受け取ったとき で「最後の爆発」を受信して、 コスチュームを ( ) にする で「explosion_0」に切り替え、 表示する で表示して x座標を ( ) 、y座標を ( ) にする で座標(-35, 71)に移動するよ。
#24左上爆発と最終爆発の完成
( ) 回繰り返す で7回コスチューム切り替え、 ( ) の音を鳴らす で「get4」、 隠す で非表示、 ( ) 秒待つ で1秒待つよ。中央・右上・左上の3つの爆発が同時に光って、ウィザー撃破の達成感を最大限に演出するんだ。
#25ゲームクリア画面の準備
準備
スプライト「ゲームクリア画面」を開く
| スプライトについて |
|---|
| ゲームクリア画面。勝利時にクリアタイム変数を表示する |
| どんな役割か |
| ゲームクリア画面を作るよ。ウィザーを倒すとクリアタイムを表示する画面だよ。 |
実装
が押されたとき で x座標を ( ) 、y座標を ( ) にする を座標(-8, 72)に配置して 隠す で隠すよ。クリアするまで見えちゃダメだからね。
#26クリア画面とタイム表示
( ) を受け取ったとき で「ゲーム終了です」を受信したら、 変数 ( ) を表示する で「★クリアタイム」変数を画面に表示するよ。 表示する でクリア画面を出して、 ( ) へ移動する で最前面に移動させるんだ。
最前面に出すのは、他のスプライトの上にクリア画面がかぶさるようにするためだよ。プレイ中の画面が裏に隠れて、スッキリしたクリア表示になるんだ。
#27サムネイルの準備
準備
スプライト「サムネ」を開く
サムネ| スプライトについて |
|---|
| サムネイルオーバーレイ。ゲーム終了・敗北時にゴースト効果でフェードイン表示する |
| どんな役割か |
| サムネイルを作るよ。ゲームの勝利・敗北時にゴースト効果でじわっとフェードインする演出を作ろう。 |
実装
が押されたとき で 隠す 、 ( ) の効果を ( ) にする でゴースト効果を100にして完全透明にするよ。 x座標を ( ) 、y座標を ( ) にする で座標(8, 0)の画面中央に配置して、 大きさを ( ) %にする を120%にするんだ。ゴースト100で隠しておくのは、フェードイン演出のための準備だよ。
#28クリア時のフェードイン
( ) を受け取ったとき で「ゲーム終了です」を受信したら 表示する で表示して、 ( ) 回繰り返す で50回 ( ) の効果を ( ) ずつ変える のゴースト効果を-2ずつ変えるよ。50回×(-2)で合計-100、つまり完全透明からじわじわと不透明になっていくんだ。
#29クリア演出の完了
( ) 秒待つ で0.5秒の余韻を持たせてから、 で「すべてを止める」を実行するよ。クリアタイムを表示した状態でゲームがきれいに終了するんだ。
#30敗北時のフェードイン
( ) を受け取ったとき で「おしまい」を受信したら 表示する で表示して、 ( ) 回繰り返す で50回 ( ) の効果を ( ) ずつ変える のゴースト効果を-2ずつ変えるよ。クリア時と敗北時で同じフェードイン演出を使うことで、どちらの結末でも統一感のある終わり方になるんだ。
#31敗北演出の完了
( ) 秒待つ で0.5秒待ってから で「すべてを止める」を実行するよ。クリアでも敗北でも、サムネイルが画面を覆ってゲームが終わる演出は同じだね。
#32スティーブの退場(クリア)
準備
スプライト「スティーブ」を開く

実装
( ) を受け取ったとき で「ゲーム終了です」を受信したら 隠す でスティーブを隠すよ。クリア画面の裏でキャラクターが動いていたら変だからね。
#33スティーブの退場(敗北)
( ) を受け取ったとき で「おしまい」を受信したら 隠す で隠すんだ。クリアと敗北の両方に対応させることで、どちらの結末でもスティーブが退場するよ。
#34オオカミの退場(クリア)
準備
スプライト「オオカミ」を開く
オオカミ| スプライトについて |
|---|
| スティーブに追従するコンパニオンスプライト |
| どんな役割か |
| オオカミをスティーブの相棒として作るよ。常にスティーブの方を向いてついてくるようにプログラミングしよう。 |
実装
( ) を受け取ったとき で「ゲーム終了です」を受信して 隠す で隠すよ。
#35オオカミの退場(敗北)
( ) を受け取ったとき で「おしまい」を受信して 隠す で隠すんだ。
#36剣の退場(クリア)
準備
スプライト「剣」を開く
剣| スプライトについて |
|---|
| ダイヤモンドの剣。スティーブに追従し左右対応のスイング攻撃アニメーションを行う |
| どんな役割か |
| ダイヤモンドの剣を作るよ。スティーブに追従して、スペースキーで剣を振る攻撃アニメーションをプログラミングしよう。キラキラ光る色エフェクトも付けるよ。 |
実装
( ) を受け取ったとき で「ゲーム終了です」を受信して 隠す で隠すんだ。
#37剣の退場(敗北)
( ) を受け取ったとき で「おしまい」を受信して 隠す で隠すよ。1つのメッセージで複数のスプライトが同時に反応して消えていくのは、ブロードキャストの便利なところだね。
#38攻撃ボタン(左)の退場
準備
スプライト「攻撃ボタン(左)」を開く
| スプライトについて |
|---|
| 左側のモバイル攻撃ボタン。クリックで攻撃準備メッセージを送信 |
| どんな役割か |
| 左側の攻撃ボタンを作るよ。クリックすると剣の攻撃が発動するようにプログラミングしよう。 |
実装
( ) を受け取ったとき で「ゲーム終了です」を受信して 隠す で隠すよ。
#39攻撃ボタン(右)の退場
準備
スプライト「攻撃ボタン(右)」を開く
| スプライトについて |
|---|
| 右側のモバイル攻撃ボタン。クリックで攻撃準備メッセージを送信 |
| どんな役割か |
| 右側の攻撃ボタンを作るよ。左ボタンと同じく、クリックで攻撃を発動するんだ。 |
実装
( ) を受け取ったとき で「ゲーム終了です」を受信して 隠す で隠すんだ。
#40HPバーの停止(クリア)
準備
スプライト「プレイヤーHPバー」を開く

実装
( ) を受け取ったとき で「ゲーム終了です」を受信したら で「すべてを止める」を実行するよ。
#41HPバーの非表示(クリア)
( ) を受け取ったとき で「ゲーム終了です」を受信して 隠す で隠すんだ。
#42HPバーの停止(敗北)
( ) を受け取ったとき で「おしまい」を受信して で「すべてを止める」を実行するよ。クリアでも敗北でも、すべてのスプライトが正しく退場して、サムネイルがきれいにフェードインしてゲームが終わるんだ。
まとめ
お疲れさまでした!クローン弾丸の追尾、ブロードキャスト連鎖による敗北演出、コスチュームHP表示など、本格的なアクションゲームに必要な要素を全部作り上げたね。16スプライトが協調して動く大規模な作品を完成できたのはすごいことだよ!ここで学んだ物理移動とイベント駆動設計を活かして、ぜひ自分オリジナルのボスを作ってみよう!