今回、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(){ }**********************************************
マップデータの読み込みとシステムデータ関連の部分はまだ作ってないので何も書いてありません。
添付ファイルはロード対象のファイルで、中には保存された値が入っています。
どうか、知恵を貸していただけたら幸いです。