- 1. ゲーム準備とハートの移動 (いまここ)
さぁ、スクラッチでナニ作る!?
動画で見てみよう
チュートリアルの元になった作品
今回の目標
スターター作品をリミックスしよう
このチュートリアルにはスターター作品があります。使わなくても大丈夫だけど、最低限の素材などが用意されてるので便利です。
スターター作品をダウンロード
#1ステージ: ゲーム開始の準備
準備
スプライト「stage」を開く
| スプライトについて |
|---|
| Undertaleのサンズバトルを再現したゲームのステージ。BGM・HPなどの全体変数の初期化と音楽制御を担当する |
変数「★HP」を追加
プレイヤーのHP(初期値100、骨やブラスターに当たると減少)
実装
まずはバトルが始まる瞬間の準備から。 が押されたときで旗が押されたら、画面の見た目と数値をいっきに整えるよ。
プレイヤーの体力を見せるために変数 ( ) を表示するで「★HP」を画面に出して、戦闘ステージの背景に切り替える。最後に「■サンズのサイズ」を80にセット。
このサイズ、じつはサンズ本体じゃなくて頭・体・脚の3つのスプライトが共通で読みにいく数字なんだ。1か所いじるだけで3パーツまとめて大きさが揃う、みたいな仕組み。
#2ステージ: 全スプライトの一斉始動
準備
変数「■サンズのサイズ」を追加
サンズスプライトのサイズ(旗クリック時に80に設定し以降変更しない定数)
変数「★サンズのX座標」を追加
サンズの基準X座標(テレポートや位置リセット時に参照する)
変数「★サンズのY座標」を追加
サンズの基準Y座標(テレポート後の位置を決める)
変数「■ダンス速度」を追加
サンズのダンスアニメーションの移動速度(旗クリック時に0.4に設定し以降変更しない定数)
メッセージ「スタート」を追加
メッセージ「ハート操作開始」を追加
実装
準備が終わったら( ) を送るの出番だね。「スタート」と「ハート操作開始」の2つを送って、各スプライトをいっせいに動かし始めるんだ。
ブロードキャストはテレビの放送みたいなものだよ。ステージが1回発信すると、受信側のスプライト全員が同時に反応するんだ。バラバラのスプライトを1つのゲームとして束ねる司令塔の役割だね。
#3サンズの頭: イントロの初期化
準備
スプライト「サンズの頭」を開く
| スプライトについて |
|---|
| サンズの頭部スプライト。表情コスチュームを切り替えながらセリフをタイプライター風に表示し、攻撃開始の合図を出す |
| どんな役割か |
| サンズが喋るよ!表情を変えながらセリフを1文字ずつ表示する仕組みと、攻撃の引き金を引く仕組みを一緒に作ろう。 |
実装
( ) を受け取ったときで「スタート」の合図を受けたら、表示するでサンズを表示して、コスチュームを ( ) にするで「閉口」の落ち着いた顔に。
大きさを ( ) %にするで「■サンズのサイズ」変数の値(80)に合わせるんだね。サイズを変数で持っておくと、あとでテレポート演出のときも同じ大きさを一発で呼び出せて便利ってわけだよ。
#4サンズの頭: 頭を定位置へ
x座標を ( ) 、y座標を ( ) にするで「★サンズのX座標」「★サンズのY座標」の位置へ移動して、( ) へ移動するでいちばん前に出す。これで胴体や脚に隠れないようにするんだね。
最後に( ) 秒待つで0.5秒だけ間を置く。この小さな「ため」が、このあと体と脚がそろう登場の見せ場につながるんだ。
#5サンズの胴体: 胴体スプライトの登場
準備
スプライト「サンズの胴体」を開く
| スプライトについて |
|---|
| サンズの胴体スプライト。ポーズ切り替え・ダンスアニメーション・左右へのよけ動作を担当する |
| どんな役割か |
| サンズの体を動かそう!腕組みや上向きなどのポーズを切り替えて、ダンスやよけ動作もつけるよ。 |
実装
胴体側も( ) を受け取ったときで同じ「スタート」の合図を受けて、表示するで表示、コスチュームを ( ) にするで正面向きの「0」のポーズに。
そのあと大きさを ( ) %にするで「■サンズのサイズ」に合わせて、x座標を ( ) 、y座標を ( ) にするで「★サンズのX座標」「★サンズのY座標」へ移動。頭と同じサイズ・同じ基準位置の変数を使うから、頭と体がズレずにピタッと重なるんだよ。
#6サンズの脚: 脚の初期化
準備
スプライト「サンズの脚」を開く
| スプライトについて |
|---|
| サンズの脚部スプライト。頭・胴体と連動してシェイクや位置合わせを行う |
| どんな役割か |
| サンズの足元を作ろう!頭や胴体と一緒に揺れたり位置を合わせたりする脚のスプライトだよ。 |
実装
表示してコスチュームを「0」に戻したあと、大きさを ( ) %にするで大きさを「■サンズのサイズ」に、x座標を ( ) 、y座標を ( ) にするで位置を「★サンズのX座標」「★サンズのY座標」に合わせるんだ。
#7FIGHTボタン: たたかうボタン
準備
スプライト「FIGHTボタン」を開く
FIGHTボタン| スプライトについて |
|---|
| バトルメニューの「たたかう」ボタンスプライト。カーソル選択状態に応じてコスチュームを切り替える |
| どんな役割か |
| 「たたかう」ボタンを作ろう!カーソルが当たると選択状態になってハイライトされる仕組みを実装するよ。 |
実装
( ) を受け取ったときで「スタート」を受けたら、コスチュームを「たたかう」にしてx座標を ( ) 、y座標を ( ) にするで画面左下(-153, -153)へ。サイズを80にして表示するで表示するよ。
位置・大きさ・見た目をまとめて整えてから出すんだね。ボタンを画面にきっちり並べるための土台づくりだね。
#8ACTボタン: こうどうボタン
準備
スプライト「ACTボタン」を開く
ACTボタン| スプライトについて |
|---|
| バトルメニューの「こうどう」ボタンスプライト。カーソル選択状態に応じてコスチュームを切り替える |
| どんな役割か |
| 「こうどう」ボタンを作ろう!カーソルが当たると選択状態になる仕組みを実装するよ。 |
実装
「スタート」を受けたらコスチュームを「こうどう」にして、x座標を ( ) 、y座標を ( ) にするで(-51, -153)へ。たたかうボタンの右どなりに並ぶ位置だね。サイズを80にして表示するで表示するよ。
1個ボタンの型ができると、あとは位置とコスチュームを変えるだけで量産できるね。アイテムもみのがしも、この調子でどんどん増やせるってわけだよ。
#9アイテムボタン: アイテムボタンを出す
準備
スプライト「アイテムボタン」を開く
アイテムボタン| スプライトについて |
|---|
| バトルメニューの「アイテム」ボタンスプライト。カーソル選択状態に応じてコスチュームを切り替える |
| どんな役割か |
| 「アイテム」ボタンを作ろう!カーソルが当たると選択状態になる仕組みを実装するよ。 |
実装
( ) を受け取ったときで「スタート」を受けたらコスチュームを「アイテム」にして、x座標を ( ) 、y座標を ( ) にするで(51, -153)へ。こうどうボタンのさらに右どなりに並ぶ位置だね。
サイズを80にして表示するで表示。位置とコスチュームを差し替えるだけで、もう1個ボタンが増えるんだね。型ができてると量産がラク。
#10みのがすボタン: みのがすボタンを出す
準備
スプライト「みのがすボタン」を開く
みのがすボタン| スプライトについて |
|---|
| バトルメニューの「みのがす」ボタンスプライト。カーソル選択状態に応じてコスチュームを切り替える |
| どんな役割か |
| 「みのがす」ボタンを作ろう!カーソルが当たると選択状態になる仕組みを実装するよ。 |
実装
( ) を受け取ったときで「スタート」を受けたらコスチュームを「みのがす」にして、x座標を ( ) 、y座標を ( ) にするで一番右の(153, -153)へ。サイズ80で表示する。
たたかう・こうどう・アイテム・みのがす。横一列に4つ並んで、いよいよバトルメニューの全体像が見えてきたね。
#11サンズの頭: セリフ表示ブロックを作る
準備
スプライト「サンズの頭」を開く
カスタム定義「セリフを表示する」を追加
テキストをタイプライター風に1文字ずつ表示し、Zキーで送る
変数「表示中テキスト」を追加
タイプライター表示で現在画面に出ている文字列
変数「残り文字数」を追加
タイプライター表示の残り文字数カウンタ
実装
定義 ( )で「セリフを表示する」を定義して、「表示中の文字」をいったん空っぽにリセット。
( ) を ( ) にするで「残り文字数」に、これから出す文章の長さを( ) の長さで測ってセットする。この数を1ずつ減らしながら文字を足していく作戦だ。
#12サンズの頭: 1文字ずつ足すループ
ここが1文字ずつ表示する心臓部。( ) まで繰り返すで「残り文字数」が-1になるまでくり返すよ。
ループの中では( ) と ( )と( ) の ( ) 番目の文字を組み合わせて、「表示中の文字」のうしろに次の1文字をくっつける。これをくり返すと、文章がだんだん伸びていくんだ。
#13サンズの頭: 画面に出して残りを減らす
1文字つなげたら、( ) を ( ) ずつ変えるで「残り文字数」を1つ減らすよ。これでループが少しずつ終わりへ近づく。
そして( ) と言うで、いまの「表示中の文字」を吹き出しに出す。ループのたびに更新されるから、文字がだんだん増えていくように見えるってわけ。
#14サンズの頭: タイプ音を鳴らす
もし ( ) ならで、いまの文字が空白じゃないときだけ( ) の音を鳴らすで「Sans voice」を鳴らす。空白でいちいち音が鳴るとうるさいから、そこは飛ばすんだ。
( ) 秒待つの待ち時間が、文字を出す速さそのもの。引数で受け取るから、セリフごとにテンポを変えられるんだね。
#15サンズの頭: 全文スキップの親切設計
もし ( ) ならでXキーが押されたら、( ) と言うで文章をいっきに全部表示。
あとは( ) まで待つでZが押されるのを待って、 でこの表示処理を打ち切る。せっかちなプレイヤーにもやさしい作りだ。
#16サンズの頭: 送り待ちの調整
( ) まで待つでXキーが離されるのを待ってから、もう一度Zキーが押されるのを待つんだ。
こうしないとキーを押しっぱなしで全部スキップされちゃう。一拍おくことで、誤操作で読み飛ばすのを防いでるってわけ。
#17サンズの頭: あの第一声
「きょうは ステキな日だ。」「はながさいてる ことりたちも さえずってる」「こんな日には おまえみたいなヤツは」と、3つのセリフを畳みかける。2つ目の引数(0.07や0.05)が1文字を出す速さで、数字を変えてセリフごとのテンポを調整してるのが細かいんだよね。
#18サンズの頭: 口を開いて決めゼリフ
ここがイントロの決め台詞。コスチュームを ( ) にするでサンズの顔を「開口」に変えて、口が動いてる感を出すよ。
そして「じごくで もえて しまえばいい」と言い放つ。おだやかな天気の話から急にこの一言――この温度差こそ、この作品いちばんの見せ場なんだ。
#19サンズの頭: 最初の攻撃へ
準備
メッセージ「最初の攻撃」を追加
ゲーム開始直後のイントロ攻撃の開始を通知する
実装
セリフが終わったら、いよいよ戦闘へ。( ) を送るで「最初の攻撃」の合図を送るよ。
このたった1ブロックが、バトルのスタートボタン。受け取った側がサンズを動かしはじめる。おだやかなイントロから戦いへ、物語が動き出す瞬間だ。
#20テレポートエフェクト: テレポート係の初期化
準備
スプライト「テレポートエフェクト」を開く
テレポートエフェクト| スプライトについて |
|---|
| サンズのテレポート演出を制御するスプライト。BGM音量の切り替えとランダム攻撃の制御も担当する |
| どんな役割か |
| サンズが瞬間移動するエフェクトを作ろう!テレポートの演出とランダムで攻撃パターンを変える仕組みを作るよ。 |
実装
この「テレポートエフェクト」スプライトは、 が押されたときでゲームが始まったらx座標を ( ) 、y座標を ( ) にするで画面の真ん中へ。隠すでいったん隠しておくね。
普段は見えない裏方だけど、テレポートの瞬間だけ仕事をする係。
#21テレポートエフェクト: テレポート開始
( ) を受け取ったときで「最初の攻撃」を受け取ったら、( ) へ移動するで最前面に出して表示するで表示するよ。
そして( ) の音を鳴らすでテレポート音を鳴らすんだよ。シュンッていう、あの瞬間移動の音だね。
#22テレポートエフェクト: 位置を送って瞬間移動
準備
メッセージ「テレポートZ」を追加
サンズのテレポートエフェクト開始を通知する
実装
ちょっとだけ待ってから、テレポート先の高さを変数にセットして( ) を送るで「テレポートZ」を送る。サンズ側がこの合図を受けて移動するんだ。
合図を送ったら隠すでエフェクトを隠して、もう一度テレポート音。出る音と消える音で挟むと、瞬間移動っぽさが出る。
#23サンズの頭: テレポートの目光り
準備
スプライト「サンズの頭」を開く
実装
( ) を受け取ったときで「テレポートZ」が来たらy座標を ( ) にするで高さを「★サンズのY座標」に合わせる。
そこから( ) 回繰り返すで3回、「黄色目」と「青目」のコスチュームを切り替えて目を点滅させるんだ。テレポート直前の不気味な感じ、出てるよね。
#24サンズの胴体: テレポート演出
準備
スプライト「サンズの胴体」を開く
実装
y座標を ( ) にするで縦位置を「★サンズのY座標」に合わせて、コスチュームを ( ) にするで「上向き」のポーズに切り替える。同時にブラスターが出るときの効果音も鳴らすんだ。
#25サンズの胴体: コスチューム逆送り
コスチュームを ( ) にするに、今のコスチューム番号から1を引いた値を渡すのがミソだよ。で現在の番号を取って、そこから( ) - ( )で1引くよ。番号で指定すると、こういう「1つ前に戻す」処理がスッと書けるんだ。
#26サンズの脚: 脚のテレポート
準備
スプライト「サンズの脚」を開く
実装
y座標を ( ) にするで「★サンズのY座標」に合わせるだけ。瞬間移動だから、滑らかに動かさず一発で位置を変えるのがポイントだね。
#27バトルボックス: バトルボックスの準備
準備
スプライト「バトルボックス」を開く
| スプライトについて |
|---|
| プレイヤーが動き回る戦闘用の白枠ボックス。攻撃に合わせてコスチュームを切り替えてサイズ・形状を変える |
| どんな役割か |
| 戦いの舞台になる四角いボックスを作ろう!攻撃によってボックスの形や大きさが変わるよ。 |
実装
隠すでいったん姿を隠して、レイヤー(重なり順)を整えるよ。( ) へ移動するで最前面に出してから、100層ぶん奥に下げるんだ。
わざわざ最前面→奥へと動かすのは、毎回スタート位置を同じレイヤーに固定するためだよ。重なり順がブレると、ボックスがハートや骨に隠れて見えなくなることがあるんだね。最初に基準を作っておく感じなんだ。
#28バトルボックス: テレポート後の正方形
サンズがテレポートする場面の演出だよ。「テレポートZ」を受け取ったら、x座標を ( ) 、y座標を ( ) にするでボックスを画面の中央(0, 0)へ移動。
そこで「正方形」コスチュームに切り替えて表示するで表示するよ。テレポートのたびに位置と形をリセットして、毎回まっさらな状態から始められるようにしてる。
#29ハート(魂): ハートの初期設定
準備
スプライト「ハート(魂)」を開く
| スプライトについて |
|---|
| プレイヤーが操作するハート型の魂スプライト。赤モード(4方向移動)と青モード(重力あり)の2種類の操作方式を持つ |
| どんな役割か |
| プレイヤーが操作するハートを作ろう!矢印キーで動かして骨やブラスターを避けよう。赤と青で動きが変わるのがポイントだよ。 |
変数「★ハートモード」を追加
ハートの操作モード(r=赤モード、b=青モード)
変数「Y方向速度」を追加
ハートの縦方向の移動速度(青モードで重力の影響を受ける)
実装
大きさを ( ) %にするで大きさを82にして、「★ハートモード」を0、「Y方向速度」も0にリセット。モードと速度を毎回ゼロに戻しておくのが大事なんだ。
リセットを忘れると、前回のゲームの速度が残ったままスタートして、いきなりハートがすっ飛んでいくバグになりがち。最初に0で揃えておく、お約束。
#30ハート(魂): 赤ハートで待機
準備
変数「X方向速度」を追加
ハートの横方向の移動速度
実装
( ) へ移動するで最前面に出してから隠すで隠すよ。出番が来るまでは隠しておいて、最前面の位置だけ先に確保しておくんだ。
ハートは骨やブラスターより手前にいないと、攻撃に隠れて自分の魂が見えなくなる。だから表示するより先にレイヤーを最前面で押さえておくってわけ。
#31ハート(魂): テレポートでハート登場
準備
変数「被弾判定有効」を追加
ハートの被弾判定が有効かどうか(1=有効、0=無効)
実装
位置を(0, -37)に決めて、最前面に出して表示するで表示。前に隠しておいたハートを、ちょうどいいタイミングで画面に呼び出すんだ。
#32ハート(魂): 下へスッと滑り込む
( ) 秒でx座標を ( ) に、y座標を ( ) に変えるで0.1秒かけて(0, -95)まで一気に動かして、( ) の音を鳴らすで殴られたような効果音をドンッと鳴らすよ。短い時間で動かすと、テレポートで叩き落とされたみたいな勢いが出るんだ。
#33ハート(魂): 着地のシェイク
準備
メッセージ「シェイク」を追加
サンズとボックスをシェイクさせ被弾演出を行うよう通知する
実装
滑り込んだ勢いそのままに( ) を送るで「シェイク」を送って、画面をブルッと震わせるよ。
そのあと( ) 秒でx座標を ( ) に、y座標を ( ) に変えるで0.3秒かけて(0, -50)へ。落下より少しゆっくり戻すことで、ドンッと落ちて反動でちょっと跳ねる、みたいな手触りになる。
#34サンズの頭: 画面を揺らす
準備
スプライト「サンズの頭」を開く
変数「揺れの強さ」を追加
シェイクアニメーションの振れ幅(12から0に減衰)
実装
( ) を受け取ったときで「シェイク」が来たら「揺れの強さ」を12にして、( ) へ移動するで最前面に持ってくる。
あとは( ) 回繰り返すで12回、( ) から ( ) までの乱数でランダムな位置にガタガタ動かすよ。揺れの強さを少しずつ減らすから、だんだん収まっていく感じ。
#35サンズの頭: 揺れを止める
x座標を ( ) 、y座標を ( ) にするで定位置(0, 85)に戻して、 でこのスプライトの他の動きを止めるんだ。
最後にコスチュームを ( ) にするで「空白」コスチュームにして無表情に。演出が終わったら素の顔に戻しておくってことだ。
#36サンズの胴体: 被弾でシェイク
準備
スプライト「サンズの胴体」を開く
実装
( ) を ( ) にするで「揺れの強さ」を12にセット。( ) 回繰り返すを12回まわして、その中でx座標を ( ) 、y座標を ( ) にするに乱数を混ぜて、基準位置からランダムにズラすんだ。
ループのたびに( ) を ( ) ずつ変えるで「揺れの強さ」を1ずつ減らすのがミソなんだ。振れ幅が12から0へ減っていくから、揺れが自然におさまる。
#37サンズの胴体: シェイク後の戻し
x座標を ( ) 、y座標を ( ) にするで定位置に戻して、ちょっと( ) 秒待つで待つんだよ。それから次のコスチュームにするを2回まわして、表情をパッと切り替えるんだ。
#38サンズの脚: 脚もシェイク
準備
スプライト「サンズの脚」を開く
実装
( ) を ( ) にするで「揺れの強さ」を12にして、( ) 回繰り返す12回の中でx座標を ( ) 、y座標を ( ) にするにランダムなズレを入れて震わせる。
揺れが終わったらx座標を ( ) 、y座標を ( ) にするで定位置(0, 85)に戻す。胴体と脚が同じ「シェイク」の合図で一緒に震えるから、サンズ全体が1体として揺れて見える。バラバラのスプライトを連動させるコツだね。
#39バトルボックス: 画面を揺らすシェイク
準備
スプライト「バトルボックス」を開く
メッセージ「ヒット判定」を追加
ハートの被弾判定ループの開始を通知する
実装
被弾したときに画面がブルッと震える、あのシェイク演出を作るよ。「シェイク」を受け取ったら、まず( ) を送るで「ヒット判定」も起動する。
「揺れの強さ」を12からスタートして、( ) 回繰り返すで12回くり返すよ。毎回x座標を ( ) 、y座標を ( ) にするでランダムにちょっとズレた位置へ飛ばして、揺れの強さを1ずつ減らしていくんだ。
ポイントは強さをだんだん小さくしてること。最初は大きく、終わりはほぼ動かないから、自然に揺れが収まって見える。一定の揺れをずっと続けるより、減衰させるほうがリアルなんよ。
#40FIGHTボタン: ボタンを揺らす
準備
スプライト「FIGHTボタン」を開く

実装
「揺れの強さ」を12からスタートして、( ) 回繰り返すで12回くり返すね。毎回ちょっとズレた位置へ飛ばしつつ、( ) を ( ) ずつ変えるで強さを1ずつ減らしていくんだよ。
強さをだんだん小さくするから、揺れが自然に収まって見えるんだ。バトルボックスの揺れと同じ理屈を、ボタンにも使い回してるってわけだね。
#41FIGHTボタン: 定位置に戻す
だから最後にx座標を ( ) 、y座標を ( ) にするで、もとの(-153, -153)へピシッと戻す。揺れの演出と定位置キープ、セットで1つの仕組みだね。
#42ACTボタン: 攻撃でボタンを揺らす
準備
スプライト「ACTボタン」を開く

実装
攻撃が始まる合図でボタンをブルブル震わせる演出を作るよ。( ) を受け取ったときで「シェイク」を受けてスタート。
まず「揺れの強さ」を12にセット。( ) 回繰り返すを12回まわして、毎回x座標を ( ) 、y座標を ( ) にするで本来の位置(-51, -153)から「揺れの強さ」のぶんだけランダムにずらすんだね。
ミソは1回まわすごとに( ) を ( ) ずつ変えるで「揺れの強さ」を1ずつ減らしてることなんだ。揺れ幅がだんだん小さくなって、自然に止まる震え方になる。最初ガッと揺れて、すーっと収まる感じだ。
#43ACTボタン: 揺れを元の位置へ
揺れが終わったらx座標を ( ) 、y座標を ( ) にするで、きっちり元の位置(-51, -153)に戻すんだよ。
ランダムでずらしてたぶん、最後に正しい場所へ着地させないと微妙にズレが残っちゃう。締めの1ブロック、地味だけど効いてるんだ。
#44アイテムボタン: アイテムも揺らす
準備
スプライト「アイテムボタン」を開く

実装
「揺れの強さ」を12からスタートして、( ) 回繰り返すで12回、本来の位置(51, -153)のまわりにランダムでずらすね。回すたびに強さを1ずつ減らして、だんだん収めていくんだ。
3つのボタンが「シェイク」で同時に震えると、メニュー全体がガタッと揺れて攻撃の迫力が出るんだよ。ばらばらのスプライトを1つの放送でまとめて動かす、ってわけなんだ。
#45アイテムボタン: 元の位置に戻す
ランダムでずれた位置を、正しい場所へ着地させるんだね。揺れ系はこの「戻し」をセットで入れとくのが鉄則だ。
#46みのがすボタン: みのがすを揺らす
準備
スプライト「みのがすボタン」を開く

実装
「揺れの強さ」を12にして、( ) 回繰り返すで12回、定位置(153, -153)のまわりをランダムに揺らすんだよ。1回ごとに強さを1ずつ減らして、自然に収束させるんだ。
揺れの作りは3つのボタンで完全に共通。ちがうのは中心になる座標だけ、ってとこがポイントなんだ。
#47みのがすボタン: 定位置へ戻す
ずれを直して本来の場所へ着地。もう何度も見てきた、揺れの締めだね。
#48ハート(魂): 青モードに切り替え
準備
スプライト「ハート(魂)」を開く
実装
「★ハートモード」に青モードの動きをセットすることで、このあと作る操作ループがその中身を読んで動き出す。赤と青、2つの操作方式を1つの変数で切り替えてるんだ。
赤モードは上下左右に自由移動、青モードは重力+ジャンプ。同じハートなのに、変数の中身ひとつで別ゲームみたいに操作感が変わるのが、この作品の面白いところ。
#49ハート(魂): 赤モードの移動を部品にする(左)
準備
カスタム定義「赤モードの移動」を追加
赤モード時のハート移動処理(上下左右4方向・壁判定)
実装
ここからはハートの動き方そのものを部品にしていくよ。まずは赤モードの移動を定義 ( )でまとめて、自作ブロックにするんだ。
中身は4方向移動。左向き矢印が押されてたらx座標を ( ) ずつ変えるで左へ-5動かして、壁の色に( ) 色に触れたで触れてたら同じぶん戻すんだね。
#50ハート(魂): 右も同じ作り
左ができたら右も。右向き矢印は左とまったく同じ作りでいけるよ。( ) キーが押されたで右向き矢印が押されてたら、x座標を ( ) ずつ変えるで+5動かすだけ。
左は移動と壁の押し戻しがセットだったけど、右はまず動かすとこまで。壁にめり込んだぶんを戻す補正は、次のステップでまとめて入れるんだ。
#51ハート(魂): 左右の壁ぎわ補正(仕上げ)
もし ( ) ならで灰色の壁(( ) 色に触れた)に触れていたら、x座標を ( ) ずつ変えるで逆向きに少し戻して、めり込みを直すんだ。
#52ハート(魂): 上キーで上に動く
ここから上下の動き。もし ( ) ならで上向き矢印が押されているか(( ) キーが押された)を見て、押されていたらy座標を ( ) ずつ変えるで上に進むよ。
進んだ先で壁(( ) 色に触れた)に触れていたら、もう一度y座標を ( ) ずつ変えるで逆向きに戻して補正する。動かす→ぶつかったら戻す、という左右と同じ理屈だね。
まとめ
ここまでで、ゲームの骨格ができたね。旗を押したらHP表示、バトルボックス表示、ハートが動く、の3点が揃えばステージ1クリアだ。