トピック
HIROα hiroyuki-h4172

SAVE・LOAD命令について質問です。

あの、いまゲームを作っていますが、ゲーム進行をセーブしてロードして途中から続けてできるプログラムはどうつくったらよいのでしょうか?早めに教えてください。教えてくれると感激です!よろしくお願いします!
4そうだね
プレイ済み
返信[1]
親投稿
文字列変数に詰め込むか、配列にしまうか… あ、便利なツールを探すのもアリ
1そうだね
プレイ済み
返信[2]
親投稿
だにえる haru2016nen
ゲームって基本、変数の数値を元に 動作させるじゃないですか。 その数値を配列に入れてSAVEすればいい のです。
2そうだね
プレイ済み
返信[3]
親投稿
beans taku-binzu
HIROαさんの質問にあることを私も考えていました。(RPGを作ろうと考えていたので)私には技術がないのでプログラムやアルゴリズムに関する解説はできませんが、仕組みは何となく考えていたので、そちらの解説では力になれるかもしれません。 まず、ダニエルさんがおっしゃるように、変数を使うののがミソになると思います。ここで「ポケモン」を例に考えてみると、 例えば、「前回セーブした地点からゲームを再開する」場合 「○○シティ(タウン)の座標X,Yの地点でセーブをした」ということセーブします。 この処理をする時、必要なことは以下の3っつかと 1「○○」の部分→そのシティ(タウン)のマップ番号の変数をセーブ。 2「X座標,Y座標」→プレイヤーのスプライトのX,Y座標をセーブ 3「再開する」→マップ番号とX,Y座標をLOADしてそれに基づいてBG、スプライトを表示する。 多分こんな感じで大丈夫かと。
2そうだね
プレイ済み
返信[4]
親投稿
beans taku-binzu
↑が間違っていたら指摘お願いします。(私の技術力の低さ故に間違ってる可能性高いです。) ゲーム作り頑張ってください!
2そうだね
プレイ済み
返信[5]
親投稿
ちなみにセーブダイアログは省略できないから一個にまとめないとプレイしてる人からすると「うわ、Aボタン連打せなやん、めんどくさ」ってなる可能性があり、二度とやってもらえない可能性があるので。出来るだけまとめましょう^^
4そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
セーブを1回で完了するには文字列にするか数値配列にするしかありません。 両方が混在の場合は文字列で統一する方が作りやすいでしょう。 値に小数や大きな数を使用していた場合にはSTR$では文字列に変換する場合に丸め誤差が発生する可能性がありセーブしたものを「ロードしたら値が少し変ってしまった」となる可能性があります。 私の自作関数PSTR$を使えばそれは回避可能です。 https://miiverse.nintendo.net/posts/AYIHAAAEAABEVRTp-ZVMIg 文字列にまとめた場合には区切りコードを入れるなどをして正しく分解できるようにセーブデータを作らないといけません。
2そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
セーブデータ作りが面倒とか良く分からないというのであればMIKIさんのVFILERを使うと良いです。数値変数、文字列変数関係なくまとめて1回でセーブできます。 https://miiverse.nintendo.net/posts/AYIHAAAEAABEVRTtQa5Q3Q ちなみにPSTR$によって数値も誤差なく文字列化されているので安心です。
4そうだね
プレイ済み
返信[8]
親投稿
あきと SideBurnsM
例えば主人公のX座標、Y座標、レベル、体力、経験値という5つのパラメータを保存したいとします。上のパラメータは自分で変数を作っておいてください。 DIM SAVEDAT[5] SAVEDAT[0]=X座標 SAVEDAT[1]=Y座標 SAVEDAT[2]=レベル SAVEDAT[3]=体力 SAVEDAT[4]=経験値 SAVE "DAT:SAVEDATA" と書くことでセーブできます。 "DAT:SAVEDATA"の「SAVEDATA」は自分で好きな名前にできます。 一度配列に格納するして一気にセーブデータとして書き出しています。
1そうだね
プレイ済み
返信[9]
親投稿
あきと SideBurnsM
ロードする際は LOAD "DAT:SAVEDATA",SAVEDAT X座標=SAVEDAT[0] Y座標=SAVEDAT[1] レベル=SAVEDAT[2] 体力=SAVEDAT[3] 経験値=SAVEDAT[4] で配列SAVEDATにセーブデータの内容を読み込んでから、変数に値を戻していきます。 この時セーブ処理で格納した順番と同じようにデータを取り出すことが重要です。 ここでは数値だけを保存する際に一番簡単にできるである方法を説明してみました。
2そうだね
プレイ済み
返信[10]
親投稿
HIROα hiroyuki-h4172
みなさん、ありがとうございます!!これでSAVE・LOAD命令の仕組みが理解で来ました!!この辺りで閉じさせていただきます!誠にありがとうございました!!
1そうだね
プレイ済み