チェックポイント(セーブポイント)|スクラッチでアスレチックゲームの作り方⑰

チェックポイント(セーブポイント)|スクラッチでアスレチックゲームの作り方⑰
グリフパッチ(動画)
ok-scratch(解説)

和訳解説は動画作者のグリフパッチさんご本人から許可をいただいて掲載しております。
チャンネルはYOUTUBE ( by griffpatch )からどうぞ。

鬼のように厳しいアスレを作るならチェックポイントがないとプレイヤーのやる気が保たないよね。そこで今回はチェックポイントを作ってみよう。
スターター
プロジェクト
リミックス用プロジェクトへ
難しさ

任意)自分の作業中のスクラッチ作品URLを記録しておこう!再開するときに便利だよ。

LOADING...

※ この記録は今使ってるPCに保存されます。別のPCで作業するときは表示されません。

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

このスクラッチゲームの作り方への質問もOK このスクラッチゲームの作り方への質問もOK
このスクラッチゲームの作り方に挑戦していて分からないことが発生したら質問してみてね。気づいたタイミングで回答するよ。 質問は 僕のスクラッチのプロフィール で受け付けているよ。

質問テンプレート(素早く3回クリックすると全選択できるのでコピーしよう)

・◯◯ ... 記事のどこまで実装が終わったのかを記入しよう。
・□□ ... どんな問題が起きているのか、どういうときに起きるのか、具体的に書こう。
・共有済みURL ... たまに共有してない作品URLを書いてる人がいるけど、共有しないとこちらから確認できないからよろしくね。
scratch cat scratch cat

動くギミックや障害物が大量に配置された超難しいコースをクリアして、ついにキーをゲット、これでドアを開けて次の階層に挑める、やった、と思ったらケアレスミスでマグマに落ちてしまった!って、おいおい最初からやり直しかよ!!もう無理、やめた。

↑これは悲しいよね。作り手としても自分の罠にかかってユーザーがマグマに落ちたのはいいけど、それでプレイを中断しちゃうのなら悲しい。ぜひゴールまで攻略してもらい、「楽しかったよ!」とコメントしてほしい。それが人情ってもんだ。

そこで、難しいコースのあとにはチェックポイントを設けて、仮にユーザーがリスポーンしてしまってもスタート地点からではなくて途中のセーブポイントから復活することができれば、どうだろうか。

scratch cat scratch cat

うーん、まぁここから再スタートならまだやれるか。よっしゃ、もういっちょ!

うんうん、やっぱりチェックポイントがあればユーザーのモチベーションが維持できそうだね!よし、いっしょに作っていこう!

今回の目標

  • チェックポイントを作る
  • プレイヤーがチェックポイントに触れると、チェックポイントは消える
  • プレイヤーがリスポーンすると、スタート地点ではなくチェックポイントから復活できる

スプライト「プレイヤー」のスポーン値を変数化する

まずはプレイヤーからだ。

変数「★スポーンX」

変数「★スポーンY」

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

初期化する

定義「スタートする」にて、各変数にセットする値を確認しよう。そして

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

ここでは値を変数に入れるブロックを用意しただけで、まだ設置はしてない。このあと続きを見てみよう。

緑の旗が押されたとき

初期化ブロックを設置するのは緑の旗が押されたときでOKだよ。

スポーン地点に変わりがないかテストする

ちょっとしたリファクタリングになったから、動きが変わってないか確認しよう。

スプライト「アイテム」にチェックポイントを追加する

アイテムに追加していくよ。

コスチュームを整える

コスチュームを選ぼう。

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

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

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

実行ブロックを置く

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

チェックポイントが配置されたかテストする

よし、他のアイテムと同じようにフワフワしてるし、プレイヤーに触れるとスッと消えるね!いままで作った部分が再利用できて気分は上々だぜ!

  • 再利用とは 再利用とは

    再利用というワードはIT業界ではわりとメジャーなキーワードです。

    というか、納期の厳しいシステム開発会社では、いかに1つの部品(ここでいうブロック定義やスプライトやバックパックなど)を何回も使い回せるか、それによって作業を減らせるか、ということにシニアエンジニアとかアーキテクチャとかが苦心しています。だって現実の部品と違ってプログラミングの部品は何回使ってもコスト0円だからね。

    再利用性の高さは、イケてるシステム開発会社の条件の1つだったりします。

チェックポイント専用の処理を追加する

クローンされたときに条件ブロックを追加しよう。ちょっと追加する場所が複雑かも。ネスト(入れ子)になってて分かりにくいからスクショを見て注意深く追加してね。

  • ネストとは? ネストとは?

    ネストというのはたとえば「もし」ブロックの中でさらに「もし」を使ったり、ループの中で「もし」を使ったりするように、囲いの中で囲いを使っていくことを指すよ。

    ネストが深い、みたいな言い方をする。一般的にはネストは浅いほうが読みやすいコードと言えるかな。

    どのくらいまでいったら深いのか、っていうのは人や現場によって違う。僕は3つからは深いなぁって感じる。つまり、「もし」の中の「もし」まではOKだけど、もう一個「もし」とかループが入ってくると深いなぁって感じるかな。

条件式でチェックポイントか確かめる

チェックポイントならスポーンに関連する変数の値を更新しちゃおう!こうすればどこにチェックポイントを置いてもいちいち処理を追加せず、その場の座標を取得できるね。らくちん!

チェックポイントからリスポーン出来るかテストする

マグマに落ちたプレイヤーがチェックポイントから復帰できてる様子が見て取れるね!よっしゃ!

チェックポイントは何個あってもいい

増やしてみようか。

何個あってもしっかり機能していることを確認する

うん、しっかり最新のチェックポイントの座標からプレイヤーがリスポーンしているね!こりゃ開発者もユーザーもどっちにも嬉しいスーパー便利機能ができちゃいましたね、社長!

まとめ

チェックポイントができた!これでどんなに難しいアスレを作っても、しっかりチェックポイントがあれば文句は言われないw むしろ難しくしてくれて、広大なアスレを作ってくれて、めっちゃサンキューな感じになるんじゃないだろうか!?

ところで!いまってゲームオーバーがないから何回でもやり直せちゃうんだよね。チェックポイントができたから、そろそろゲームオーバーも作って緊張感のあるプレイ体験を提供したいところだね。ゲームオーバーになったら基本的にスタート地点からやり直し、っていうペナルティが発生するからね。まぁ、作り方次第ではなんとでもなるけど。

ひゅー!ついでにタイトルとかも用意して、ゲームとしての格式を高めようか!楽しみすぎる!

当連載で取り上げるグリフパッチさんの動画はこちら

完成サンプルがあるよ
おつかれさま!今回のチュートリアルには完成サンプルがあるから、作ってて分からなくなったり、 動作確認をしたいときはチェックしてみてね。
ブクマよろしくお願いします! ブクマよろしくお願いします!
どんどん追記・更新していくので、ブックマークやシェアよろしくお願いします!

スクラッチゲーム攻略

スクラッチゲーム

    • 厳選されたスクラッチ人気作品リストがレビュー付きで楽しめます
      趣味に関するスクラッチ作品例
      勉強になるスクラッチ作品