コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
ここあ ◆cNXcKm243Rna
2018/1/23 18:18
質問
ゲーム内でのセーブ機能
今RPGのプログラムを作っているのですが、操作中キャラクターの位置、表示マップ、所持アイテム、ステータス等...
色々な保存した情報があるのですが、それら全てをセーブし、ロードするとその前回の続きから始められるようにしたいです。
また、試しに作ってみたところ、非常に長ったらしいプログラムになってしまいました。できるだけ短く、そのプログラムを書くには、どうすれば良いでしょうか。

コメント

アバター
こういち 2018/1/23 18:42 ◆ou0jbJnEJ0Kb
2つ方法があります。
両方紹介するので、試しに作った方に近い方を使うと良いでしょう。
アバター
こういち 2018/1/23 18:51 ◆ou0jbJnEJ0Kb
1つめ、TXT形式で保存する方法
まず、区切りになる文字を決めます。よく使われるのはCHR$(13)や","ですが、今回はキーボードから入力出来る","を使います。
その後、
SAVE "TXT:ファイル名",FORMAT$("%s,%d,%d,%d",NAME$,HP,X,Y)
みたいな感じでで保存できます。
FORMAT$は書式がややこしいので、分からなければ遠慮無く質問してください。
アバター
こういち 2018/1/23 19:06 ◆ou0jbJnEJ0Kb
読み込むときは
DIM LOAD$=LOAD("TXT:ファイル名",0)
と読み込んで
VAR I
I=INSTR(LOAD$,",")
NAME$=LEFT(LOAD$,I)
LOAD$=SUBST(LOAD$,0,I,"")
I=INSTR(LOAD$,",")
HP=VAL(LEFT(LOAD$,i))
LOAD$=SUBST(LOAD$,I+1)

みたいな感じです。
アバター
こういち 2018/1/23 19:40 ◆ou0jbJnEJ0Kb
2つ目はDAT形式で保存する方法です。個人的にはこっちの方がスマートな気がします。
保存するとき
DIM SAVE[保存したい変数の数]
SAVE[0]=HP
SAVE[1]=X
SAVE[2]=Y
SAVE[3]=MAP

SAVE "DAT:ファイル名",SAVE
です。
アバター
こういち 2018/1/23 19:42 ◆ou0jbJnEJ0Kb
読み込むとき
DIM LOAD[変数の数]
LOAD "DAT:ファイル名",LOAD,0
HP=LOAD[0]
X=LOAD[1]
Y=LOAD[2]
MAP=LOAD[3]

です。
アバター
キルル2 2018/1/23 20:47 ◆rGE712Ruejv7
短くするためには、最初からinfoという名前でグローバル1次元配列を作っておいて、infoに対してロード、セーブを行い、プログラム中でも必要に応じてinfoの中身を取り出すようにすると良いと思います
アバター
ここあ 2018/1/23 20:55 ◆cNXcKm243Rna
詳しくご説明していただき、ありがとうございます。
DAT形式の方で、少し試行してみようと思います。
アバター
ここあ 2018/1/23 22:09 ◆cNXcKm243Rna
>キルル2さん
すみません、グローバル一次元配列とはなんでしょうか?
アバター
キルル2 2018/1/24 10:45 ◆rGE712Ruejv7
自作関数の外で宣言される1次元配列のことです
「グローバル」という言葉は、プログラムのどこからでも参照できるということを表しています
アバター
Ryou Tanpo 2018/1/24 17:47 ◆AI5iRr9FjmkJ
複数の変数や配列変数を保存するには MIKI さんの VFILER も便利です。
(テキストファイルとして保存されます。サイズがちょっとでかめ)
https://mobile.twitter.com/mikiconfig/status/938055120209698816
公開キーは 【Y323VP4M】 です。
アバター
Ryou Tanpo 2018/1/24 17:48 ◆AI5iRr9FjmkJ
>こういちさん
CSV みたいなものですね。

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -