セーブデータの作り方
Posted: 2013年1月08日(火) 20:20
こんばんは。
softyaさんの講座を元にしています。
http://dixq.net/forum/blog.php?u=114&sd=a&c=2&start=50
前回、セーブ・ロードの前段階まで進めることができました。
http://dixq.net/forum/viewtopic.php?f=3&t=12087
そこで、実際にセーブ(書き込み)の機能を実装しようと思い、
a.datファイルをバイナリエディタで確認してみたところ、数値が違うものでした。
menu.cpp
1つずつやってみようと思い、下記を作ってみたところ、
ちゃんと上がったレベルが入っていました。
まず、まとめて書き込む場合、何がいけないのでしょう。
それと、つづきからを選択した場合のロード(読み込み)も考えてみたのですが、
ゲームの方に反映されていませんでした。
main.cpp
どこがいけないのでしょうか。
ご指導くださると助かります。よろしくお願いします。
softyaさんの講座を元にしています。
http://dixq.net/forum/blog.php?u=114&sd=a&c=2&start=50
前回、セーブ・ロードの前段階まで進めることができました。
http://dixq.net/forum/viewtopic.php?f=3&t=12087
そこで、実際にセーブ(書き込み)の機能を実装しようと思い、
a.datファイルをバイナリエディタで確認してみたところ、数値が違うものでした。
menu.cpp
static int save(PlayerParam_t *playerParam)
{
FILE *fp;
if((fp = fopen("a.dat", "wb")) == NULL)
return 0;
fwrite( &playerParam, sizeof(playerParam), 1, fp ) ;
fclose(fp);
return 1;
}
ちゃんと上がったレベルが入っていました。
static int save(PlayerParam_t *playerParam)
{
PlayerParam_t test = { playerParam->level };
FILE *fp;
if((fp = fopen("a.dat", "wb")) == NULL)
return 0;
fwrite( &test, sizeof(test), 1, fp ) ;
fclose(fp);
return 1;
}
それと、つづきからを選択した場合のロード(読み込み)も考えてみたのですが、
ゲームの方に反映されていませんでした。
main.cpp
static int menu_save(PlayerParam_t *playerParam)
{
PlayerParam_t test = { };
FILE *fp;
if((fp = fopen("a.dat", "rb")) == NULL)
return 0;
fread( &test, sizeof(test), 1, fp);
fclose(fp);
return 1;
}
ご指導くださると助かります。よろしくお願いします。