スクラッチに挑戦している皆さん、どうも!スクラッチコーチです。

動くギミックや障害物が大量に配置された超難しいコースをクリアして、ついにキーをゲット、これでドアを開けて次の階層に挑める、やった、と思ったらケアレスミスでマグマに落ちてしまった!って、おいおい最初からやり直しかよ!!もう無理、やめた。
↑これは悲しいよね。作り手としても自分の罠にかかってユーザーがマグマに落ちたのはいいけど、それでプレイを中断しちゃうのなら悲しい。ぜひゴールまで攻略してもらい、「楽しかったよ!」とコメントしてほしい。それが人情ってもんだ。
そこで、難しいコースのあとにはチェックポイントを設けて、仮にユーザーがリスポーンしてしまってもスタート地点からではなくて途中のセーブポイントから復活することができれば、どうだろうか。

うーん、まぁここから再スタートならまだやれるか。よっしゃ、もういっちょ!
うんうん、やっぱりチェックポイントがあればユーザーのモチベーションが維持できそうだね!よし、いっしょに作っていこう!
- ① まずはここからレッツゴー!
- ② リファクタリング)ステージをスプライトにしよう
- ③ シーンの切り替えのベース処理
- ④ ヒットボックスを使おう
- ⑤ アニメーションを実装しよう
- ⑥ 絶望の坂道処理を克服する
- ⑦ 長押しで大ジャンプする
- ⑧ 壁をツツ〜っとスライドする
- ⑨ か、壁ジャンプだと!?かっこよすぎるだろ
- ⑩ ステージがヨコにだけ続くと誰が言った?タテ構造
- ⑪ うわ!障害物が行く手をさえぎるぞ
- ⑫ 動く床のギミックを作ろう!
- ⑬ ギミックに乗っているときの衝突処理
- ⑭ オシャレなグラフィックを作るコツ
- ⑮ アイテムをゲットできればゲームに目的ができる!
- ⑯ 重要アイテムがないと開かないドア!?たぎる!
- ⑰ チェックポイントを作って激ムズなアスレを作ろう! (いまここ)
- ⑱ ゲームオーバーを作って緊張感をキープする!
- ⑲ エネミーが現れた!どうすりゃいいのよ!?
- ⑳ エネミーを踏んづけろ!
- ㉑ ギミックのリファクタリング
- ㉒ 回転が切り拓く新境地
今回の目標
- チェックポイントを作る
- プレイヤーがチェックポイントに触れると、チェックポイントは消える
- プレイヤーがリスポーンすると、スタート地点ではなくチェックポイントから復活できる
スプライト「プレイヤー」のスポーン値を変数化する
まずはプレイヤーからだ。

変数「★スポーンX」

変数「★スポーンY」

変数「★スポーンシーン」

初期化する
定義「スタートする」にて、各変数にセットする値を確認しよう。そして
定義「シーンの切り替え処理を行う」の引数に割り当てておこう。この段階ではたいして意味がないけど、今後チェックポイントを実装する際に変数が役に立つぞ。

ここでは値を変数に入れるブロックを用意しただけで、まだ設置はしてない。このあと続きを見てみよう。
緑の旗が押されたとき
初期化ブロックを設置するのは緑の旗が押されたときでOKだよ。

スポーン地点に変わりがないかテストする
ちょっとしたリファクタリングになったから、動きが変わってないか確認しよう。

スプライト「アイテム」にチェックポイントを追加する
アイテムに追加していくよ。

コスチュームを整える
コスチュームを選ぼう。

flagと入力すると「Green Flag」が見つかるね。これをチェックポイントに使おう。

枠線を8にしてくっきりさせて、サイズも調整しよう。大きさはキミのステージに合わせて整えればOK!小さいままでも構わないよ。

コスチューム名は「チェックポイント」

実行ブロックを置く
セットアップするを受け取ったらスポーンするようにしていく。

チェックポイントが配置されたかテストする
よし、他のアイテムと同じようにフワフワしてるし、プレイヤーに触れるとスッと消えるね!いままで作った部分が再利用できて気分は上々だぜ!
-
再利用というワードはIT業界ではわりとメジャーなキーワードです。
というか、納期の厳しいシステム開発会社では、いかに1つの部品(ここでいうブロック定義やスプライトやバックパックなど)を何回も使い回せるか、それによって作業を減らせるか、ということにシニアエンジニアとかアーキテクチャとかが苦心しています。だって現実の部品と違ってプログラミングの部品は何回使ってもコスト0円だからね。
再利用性の高さは、イケてるシステム開発会社の条件の1つだったりします。
チェックポイント専用の処理を追加する
クローンされたときに条件ブロックを追加しよう。ちょっと追加する場所が複雑かも。ネスト(入れ子)になってて分かりにくいからスクショを見て注意深く追加してね。

-
ネストというのはたとえば「もし」ブロックの中でさらに「もし」を使ったり、ループの中で「もし」を使ったりするように、囲いの中で囲いを使っていくことを指すよ。
ネストが深い、みたいな言い方をする。一般的にはネストは浅いほうが読みやすいコードと言えるかな。
どのくらいまでいったら深いのか、っていうのは人や現場によって違う。僕は3つからは深いなぁって感じる。つまり、「もし」の中の「もし」まではOKだけど、もう一個「もし」とかループが入ってくると深いなぁって感じるかな。
条件式でチェックポイントか確かめる
チェックポイントならスポーンに関連する変数の値を更新しちゃおう!こうすればどこにチェックポイントを置いてもいちいち処理を追加せず、その場の座標を取得できるね。らくちん!

チェックポイントからリスポーン出来るかテストする
マグマに落ちたプレイヤーがチェックポイントから復帰できてる様子が見て取れるね!よっしゃ!
チェックポイントは何個あってもいい
増やしてみようか。

何個あってもしっかり機能していることを確認する
うん、しっかり最新のチェックポイントの座標からプレイヤーがリスポーンしているね!こりゃ開発者もユーザーもどっちにも嬉しいスーパー便利機能ができちゃいましたね、社長!
まとめ
チェックポイントができた!これでどんなに難しいアスレを作っても、しっかりチェックポイントがあれば文句は言われないw むしろ難しくしてくれて、広大なアスレを作ってくれて、めっちゃサンキューな感じになるんじゃないだろうか!?
ところで!いまってゲームオーバーがないから何回でもやり直せちゃうんだよね。チェックポイントができたから、そろそろゲームオーバーも作って緊張感のあるプレイ体験を提供したいところだね。ゲームオーバーになったら基本的にスタート地点からやり直し、っていうペナルティが発生するからね。まぁ、作り方次第ではなんとでもなるけど。
ひゅー!ついでにタイトルとかも用意して、ゲームとしての格式を高めようか!楽しみすぎる!
- ① まずはここからレッツゴー!
- ② リファクタリング)ステージをスプライトにしよう
- ③ シーンの切り替えのベース処理
- ④ ヒットボックスを使おう
- ⑤ アニメーションを実装しよう
- ⑥ 絶望の坂道処理を克服する
- ⑦ 長押しで大ジャンプする
- ⑧ 壁をツツ〜っとスライドする
- ⑨ か、壁ジャンプだと!?かっこよすぎるだろ
- ⑩ ステージがヨコにだけ続くと誰が言った?タテ構造
- ⑪ うわ!障害物が行く手をさえぎるぞ
- ⑫ 動く床のギミックを作ろう!
- ⑬ ギミックに乗っているときの衝突処理
- ⑭ オシャレなグラフィックを作るコツ
- ⑮ アイテムをゲットできればゲームに目的ができる!
- ⑯ 重要アイテムがないと開かないドア!?たぎる!
- ⑰ チェックポイントを作って激ムズなアスレを作ろう! (いまここ)
- ⑱ ゲームオーバーを作って緊張感をキープする!
- ⑲ エネミーが現れた!どうすりゃいいのよ!?
- ⑳ エネミーを踏んづけろ!
- ㉑ ギミックのリファクタリング
- ㉒ 回転が切り拓く新境地
当連載で取り上げるグリフパッチさんの動画はこちら

質問テンプレート(素早く3回クリックすると全選択できるのでコピーしよう)
・◯◯ ... 記事のどこまで実装が終わったのかを記入しよう。・□□ ... どんな問題が起きているのか、どういうときに起きるのか、具体的に書こう。
・共有済みURL ... たまに共有してない作品URLを書いてる人がいるけど、共有しないとこちらから確認できないからよろしくね。