またまた自作メニューのセーブとロードの処理で問題にぶち当たった。自分用と誰か見てくれている人用にメモを残しておきます。
セーブをした後にメニューからロードを選んだら、自作メニューのピクチャが消えない問題が発生。
じゃあロードした後にピクチャを消す処理をしてみる・・・が消えない!?
ダメな例
当たり前と言っちゃあ当たり前なんですが、ロードした瞬間にセーブした直後の所まで飛んで行ってしまうんですよね。
じゃあロード前に・・・、同じ事です。今現在のピクチャや変数などを変化させても、どうせ変化させてないセーブの所まで戻ってしまいます。
じゃあセーブする前に、その自作メニューのピクチャを消せば良いんじゃあ・・・そうもいきません。
自作メニューでセーブの処理をする時、セーブの画面が表示されていないと、ちゃんとセーブされたかゲームをプレイする人が解らなくなります。
つまり
セーブをした直後はセーブ画面が表示されていて、ロードした直後はセーブ画面が消えてなければいけない、という処理になります。
ここで色々とネットで情報を調べながら、自分でも色々実験しました。
そしたらこんなのをネットで発見
https://twitter.com/#!/hakase_wbot/status/191800195229556736
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1484241069
ふむふむ、なるほど
そして実験結果で以下のような事が判明
この場合はピクチャは消去されません。ロードコマンドの後のコマンドは全て実行されません。セーブされた所に飛んで行ってしまいます。※セーブデータがなかった場合は処理が続きます。
セーブコマンドでセーブをすると、セーブをした時はその後のコマンド(ここだとキー入力後テキストが表示される)が実行されます。つまりそのまま処理が続くという事になります。
という事は、そのままセーブをした後の画面の処理ができる事が解りました。
別な実験では
ロードして、このセーブデータ1の所に飛んでいった場合、その後のコマンドが実行されません。
ネットで得た情報だと、セーブ元のイベントの最初からイベントが勝手に実行される、とあります。
以下の例だと、ロードしてセーブ1に飛んだ後は、ピクチャ表示からイベントが自動で実行(多分)される事になります。
これは、ラベルでジャンプした場合やコモンイベントのイベントの挿入などで、色々な処理が続いていた場合のセーブデータでも、イベントの挿入前の一番最初に戻る事になります。
つまり、メニューでセーブ画面を開いてセーブした場合、それをロードすると メニューを表示する一番最初のコマンドまで戻る(最初から実行)という事になります。(イベントの挿入などで処理が続いていた場合)
それだと、ロードした直後にまたメニューのピクチャなどが表示されてゴチャゴチャになります。
そこでセーブ・ロードの仕組みを理解した結果、このコマンドを思い出しました。
これはセーブデータがあった場合、そのセーブデータの変数などを書き換えるコマンドです。
セーブした直後はセーブ画面を残し、ロードする時にセーブ画面を消す、という処理をする場合、
ロードする時にこのセーブデータの書き込みコマンドで[セーブ画面を消したい変数]を1代入します。
そしてロードすると・・・、メニューが再び表示され、セーブ画面と重なりゴチャゴチャしたままです。
そこで、メニューの一番最初に条件(変数)でこの[セーブ画面を消したい変数]が1だった場合、セーブ画面およびメニューが表示させない処理を組みます。最後に[セーブ画面を消したい変数]を0に戻し、
これで実行すると・・・成功!
これでセーブ・ロードの処理とはおさらばできそうです。






