0

私は少し混乱しています、これが私がこれまでにしたことです:

public class SaveLoadSystem
{
    String SAVEFILENAME = "gameSave2.sav";
    Stats stats = new Stats();

    GameProgressInformation gameInfo = new GameProgressInformation();

    public SaveLoadSystem()
    {

        IsolatedStorageFile savegameStorage = IsolatedStorageFile.GetUserStoreForApplication();

        // open isolated storage, and write the savefile.
        if (savegameStorage.FileExists(SAVEFILENAME))
        {
            IsolatedStorageFileStream fs = null;
            try
            {
                fs = savegameStorage.OpenFile(SAVEFILENAME, System.IO.FileMode.Open);
            }
            catch (IsolatedStorageException e)
            {
            }

            if (fs != null)
            {

                byte[] saveBytes = new byte[256];
                int count = fs.Read(saveBytes, 0, 256);

                if (count > 0)
                {
                    for (int i = 0; i < stats.GetLevels; i++)
                    {
                        GameProgressInformation.LevelUnlockInfo levelInfo = new GameProgressInformation.LevelUnlockInfo();
                        // Think line below is wrong.
                        levelInfo.score = saveBytes[i * 4];
                        GameProgressInformation.levels.Add(levelInfo);

                    }
                    fs.Close();
                }

            }

        }
        else
        {
            for (int i = 0; i < stats.GetLevels; i++)
            {
                GameProgressInformation.LevelUnlockInfo levelInfo = new GameProgressInformation.LevelUnlockInfo();
                GameProgressInformation.levels.Add(levelInfo);
            }
        }
    }
    public void Save()
    {
        // Save the game.

        IsolatedStorageFile savegameStorage = IsolatedStorageFile.GetUserStoreForApplication();

        // open isolated storage, and write the savefile.
        IsolatedStorageFileStream fs = null;
        fs = savegameStorage.OpenFile(SAVEFILENAME, System.IO.FileMode.Create);

        if (fs != null)
        {
            for (int i = 0; i < GameProgressInformation.levels.Count; i++)
            {
                byte[] scoreBytes = System.BitConverter.GetBytes(GameProgressInformation.levels[i].score);
                fs.Write(scoreBytes, 0, scoreBytes.Length);

            }
            fs.Close();
        }



    }
}

私の混乱は、ロード時に必要なすべてのバイナリデータを取得すると同時に、正しいデータが正しいレベルに割り当てられていることを確認する方法です。私はそれが4つのセットで取られなければならないと思っています。どんな助けでもありがたいです。

4

1 に答える 1

0

やり方をまとめました。ストリーム リーダーのしくみを正しく理解していませんでした。

于 2012-06-27T11:57:06.833 に答える