スクラッチ

【スクラッチ】でセーブする方法を考えてみる〜基本的な考え方〜

子供向け無料プログラミング寺子屋『CoderDojo熊本』にて参加されたニンジャからご質問をいただきました。

ニンジャ
ゲームの中でセーブするのと復活の呪文がわかりません。教えて下さい。
アオキ
せ、セーブですか・・考えた事なかった・・

確かに、RPGなり恋愛ゲームなり、少し長めのゲームを作ったとしたら、

毎回毎回最初からスタートだとしんどいですもんね。

アオキ
またレベル1からスタート?!

なんてことになっちゃいますからね。

うまくセーブする方法がないか、調べてみました。

Sponsored link

スクラッチでセーブする方法・・基本編

「スクラッチ セーブ」

などのキーワードでいくつかググってみて、

なかなか分かりやすいものがなかったのでつくってみました。

ざっくり解説すると、

セーブデータ用の変数の箱をつくっておいて、

ゲームの進み具合によって、変数の値を変えていくとOKです。

例えばシューティングゲームで、

  • 最初からの場合は 変数000
  • 1面クリアしたら 変数100
  • 2面クリアしたら 変数200

などとルールをつくっておいて、

改めてゲームを再開した時に、

パスワード姉さん
続きから実行するならパスワードは?

的なメッセージを出させて、

  • 100なら1面クリアした状態
  • 200なら2面クリアした状態

などのように設定すれば実現できるかなと思います。

もし、もっと細かい情報を保存させようとしたら、

例えば、RPGでいうと、

  • レベル
  • 賢さ

みたいなパラメータがあったとしたら、

それらを保存する用の変数をつくるとOKです。

例えば4桁の数字をつくって、最初の値を0000などにしておいて、

  • レベルが2なら千の位を2に設定
  • 力が5なら百の位を5に設定
  • 賢さが8なら十の位を8に設定
  • 運が6なら一の位を6に設定

というルールを決めておいて、

パスワードとして 『2586』 と入力したら、パラメータをその状態に変更すればOKになります。

こちらのスクラッチのコードが参考になります。

こんな感じで桁ごとに意味を変えていけばOKですね。

Sponsored link

スクラッチでセーブする方法・応用編

さきほどの作り方でセーブ・ロードはできるのですが、

欠点としては、パスワードが推測されやすいという事かなと思います。

例えば先ほどのRPGの例だと、9999 と入力したら4つのパラメータとも9になってしまいます。

それではNGとなれば、

もっと推測されづらいパスワードを作る必要がでてきます。

例えば下記のスクラッチのコードでは、
リストをつくった後にそれぞれの数字を16進数に変えたりしています。

16進数は、0〜9と、A〜F まで使って表現する方法で、
例えば先ほどの『2586』だと、16進数だと『A1A』になったりします。

それでも勘のいい人ならパスワードが推測できるとも思います。

実際のゲームでは、

ゲームの進み具合によって変数やリストを変更しつつ、

独自の変換技術を使ってパスワードが推測できないようにしていたりします。

この辺りはどんどんややこしい話になっていくのでここまでにしますが、

セーブ機能1つつくるだけでも、結構いろんな事を考える必要がでてくるなぁと改めて思わされました。

最後に

ニンジャ
スクラッチでセーブしたい

という質問が出てきてくれたおかげで、

僕もその方法を調べることになり、知ることができました。

こうやってどんどん教えあいができてくるとどんどんつくるのが面白くなるでしょうし、

結果的に頭の体操にもなるんだろうなぁと思います。

子供向け無料プログラミング寺子屋『CoderDojo熊本』を始めてよかったなぁと思った瞬間でした。

created by Rinker
¥2,376 (2019/08/21 12:57:20時点 Amazon調べ-詳細)

『スクラッチ』ではこんな記事も読まれています。

1. 【スクラッチ】でシューティングゲームのかんたんなつくり方

2. 【スクラッチ】ジャンプをする方法〜3ステップでジャンプできるようになる〜

3. 【スクラッチ】角度や回転を使う方法【動画】【初心者向け】

4. 【スクラッチ】で花火をつくる方法【動画あり】【初心者向け】

5. 【スクラッチ】シューティングで敵の弾をつくる方法【画像たっぷり】

6. 【スクラッチ】でセーブする方法を考えてみる〜基本的な考え方〜

7. スクラッチプログラミングでマリオ風の横スクロールアクションゲームを参考にいいとこ取りしてみる

8. スクラッチ(scratch)とマインクラフト(minecraft)を連携させて子ども向けプログラミングのネタを増やしてみた

9. 【スクラッチ】時間が経つと敵が増えて難しくしたい、というリクエストを叶えるために

10. プログラミングと三角関数〜小学生でもすんなりわかる三角関数を目指して

関連記事

  1. スクラッチ

    【スクラッチ】シューティングで敵の弾をつくる方法【画像たっぷり】

    ブロックを組み立てるようにプログラミングできる『スクラッチ(scrat…

  2. スクラッチ

    【スクラッチ】で花火をつくる方法【動画あり】【初心者向け】

    ブロックを組み立てるようにプログラミングができる『スクラッチ(scra…

  3. スクラッチ

    【スクラッチ】ジャンプをする方法〜3ステップでジャンプできるようになる〜

    子ども向け無料プログラミング寺子屋『CoderDojo熊本』開催中…

  4. スクラッチ

    【スクラッチ】角度や回転を使う方法【動画】【初心者向け】

    ブロックを組み立てるようにプログラミングができる『スクラッチ』。ス…

Sponsored link

最近の記事

  1. CG関連

    【WebGL】入門 わかりやすく【図解】してみた
  2. バックエンド

    【厳選8冊】ホームページを作れるようになるためのおすすめ本【初心者向け】
  3. CG関連

    【P5.js】遊ぶようにプログラミングできるクリエイティブコーディング〜はじめの…
  4. 学び・教育

    『ニュータイプの時代』〜リベラルアーツとテクノロジーの融合〜
  5. バックエンド

    【検索システム】をつくってみた【実際にログインしてさわれます】
PAGE TOP
//記事ページのみに構造化データを出力 //サムネイルを取得 //ここから構造化データの記述