ページ 1 / 1
dxlib psp 公式セーブのやり方がわかりません
Posted: 2013年2月24日(日) 11:43
by メカ
DXライブラリPortableで公式セーブ機能を使う方法についてですが、
http://oisu.blog85.fc2.com/blog-entry-1061.html
これを使おうと思ってますが、関数の引数の説明がいまいち分かりません。
セーブするデータ(intなど)はどのように指定してセーブするのですか?
ご回答お待ちしております。
Re: dxlib psp 公式セーブのやり方がわかりません
Posted: 2013年2月24日(日) 11:56
by softya(ソフト屋)
DXライブラリPortableを使える環境を持っていませんが、
char *SaveData:セーブデータへのポインタ
だと文字列じゃなくても良いと書かれているのでセーブする情報を集めた構造体のポインタをchar*にキャストして渡せば良いと思います。
Re: dxlib psp 公式セーブのやり方がわかりません
Posted: 2013年2月24日(日) 12:44
by メカ
そこに渡せばいいんですね、ご回答感謝です。
int a,int i[5],char data,char name[10];
char*savedataにこのデータの情報を書く一例を教えて頂ければ有難いです。
Re: dxlib psp 公式セーブのやり方がわかりません
Posted: 2013年2月24日(日) 12:54
by softya(ソフト屋)
メカ さんが書きました:そこに渡せばいいんですね、ご回答感謝です。
int a,int i[5],char data,char name[10];
char*savedataにこのデータの情報を書く一例を教えて頂ければ有難いです。
サンプルコード以前に構造体は分かりますか?
int a,int i[5],char data,char name[10];
これらを構造体にするには、色々とプログラムコードに変更が必要です。
あとバイナリデータのファイル書き出し読み出しとか理解されている必要があります。
Re: dxlib psp 公式セーブのやり方がわかりません
Posted: 2013年2月24日(日) 18:00
by メカ
struct Save{
int a;
int i[5];
char data;
char name[10];
}
int main(){
struct Save dat;
char *p = (char *)&dat;
}
これでpを渡したら出来ますか?
ファイルの読み書きの処理は少しなら分かります。
Re: dxlib psp 公式セーブのやり方がわかりません
Posted: 2013年2月24日(日) 18:10
by softya(ソフト屋)
pを渡せば出来ます。
サイズはsizeof(struct Save)ですので間違えてsizeof(p)としないように注意して下さい。
構造体にはポインタを含んでは行けませんので、セーブデータを拡張していく過程で含まないように注意しましょう。
char data;ってのがポインタの間違いじゃないのか気になりますが。
出来ればセーブデータのバージョン番号などを持って将来セーブ項目が増えた時に備えておくのも賢い方法です。
それと構造体に書き換えた場合の全体の書き換えは大丈夫ですか?
セーブ時にセーブデータ構造体に要素を1つづつコピーしても良いですが拡張していく過程で忘れが出る可能性があります。
どちらを選んでも良いですが、一長一短です。
Re: dxlib psp 公式セーブのやり方がわかりません
Posted: 2013年2月24日(日) 22:06
by メカ
わかりました(^^)
何度もご回答有難う御座います!