今回、C++と、DXライブラリを使い、学校の進級制作でグループでゲームを作っています。その内容は、RPGの様なパラメーターの成長要素を盛り込んだアクションゲームで今自分はそのセーブロードを作っています。しかし、主人公のパラメータの保存は出来ても、ファイルからロードした値を数値に変換してキャラクタークラスの変数に代入出来なくて困っています。
言葉で伝えにくいのですが、大まかな感じはこうです。
セーブデータをロード時にファイルに保存されている値を数値に変換
↓
関数の引数(予め作られたキャラクターのクラス内の一部の変数)に代入。
自分はファイル内の値を数値に戻す方法まではわかるのですが、保存されている値は最終的に桁がバラバラ(一の桁から万の桁まで)な値が幾つも出てくるので、それぞれに合わせて代入するのが分からなくなってしまいます。
**********************************************
以下プログラム(セーブ、ロード関連)
**********************************************
#include"file_in_out.h"
#include"mych.h"
//------------------------------------------------------
//キャラクターのパラメータ関連
//------------------------------------------------------
void chardate::save_chardate(mych player_st){ //キャラクタークラス内のステータスパラメータの保存
char fname[/url]="char_date.txt";
FILE *fp;
fp = fopen(fname,"w");
if(fp!=NULL){
fprintf(fp,"%d\n%d\n",player_st.speed,player_st.jp); //ファイル出力処理
}
fclose(fp); //閉じる
}
//--------------------------------------------------------------------------------
//今現在ここで詰んでる。
//--------------------------------------------------------------------------------
void chardate::load_chardate(mych *load_player_st){ //ファイル内に入っているキャラクターのパラメータをロードして引数のキャラクタークラスに代入する
char fname[/url]="char_date.txt";
char PLAYER_ST[2][5];
int i=0;
FILE *fp;
fp = fopen(fname,"r");
if(fp!=NULL){
//ここでファイルの中身の文字列を数値(int)に変換
//引数であるキャラクターのクラスの一部の変数に代入
//
}
fclose(fp);
}
//------------------------------------------------------
//マップデータの読み込み
//------------------------------------------------------
void mapdate::load_mapdate(){
}
//------------------------------------------------------
//システムデータ関連
//------------------------------------------------------
void game_systemdate::save_systemdate(){
}
void game_systemdate::load_systemdate(){
}
**********************************************マップデータの読み込みとシステムデータ関連の部分はまだ作ってないので何も書いてありません。
添付ファイルはロード対象のファイルで、中には保存された値が入っています。
どうか、知恵を貸していただけたら幸いです。