XNAメモ – XNAの機能を使ってロードする方法(Windows編)

Posted: 2012年12月28日 カテゴリー: プログラミングメモ, XNA, XNAメモ
タグ:, , , , , , ,

記念すべき(?)50回目のXNAメモです!!
内容としては、前回の記事の続きです。今回は、セーブデータをロードする方法を紹介します。

今回の記事は、前回の記事で作成した物を再利用するので、そちらを見ていない方は、先に読む事をオススメします。

ロードの手順ですが、基本的にはセーブと同じで、ロード用クラスを作成し、それを前回作成したSaveDataHandlerクラスを継承させます。そして、Process()メソッドをオーバーライドし、ロード処理を行います。

今回行う処理は、まずロードするファイルが存在するかを確認し、存在した場合XmlSerializerを使用してファイルをSaveGameDataに変換するだけです(このクラスはセーブデータの中身を保存している為、セーブ時に使用した任意の物に置き換えてください)。

では実装処理です。

class DataLoader : SaveDataHandler
{
        public DataLoader()
            : base()
        {
        }

        protected override bool Process(SaveGameData data)
        {
            // ファイルが存在しない場合、処理を終了する
            if (!m_storageContainer.FileExists(m_filename))
            {
                return false;
            }

            // ロード処理
            using (Stream stream = m_storageContainer.OpenFile(m_filename, FileMode.Open))
            {
                XmlSerializer serializer = new XmlSerializer(typeof(SaveGameData));

                // 読み込んだファイルをSaveGameDataに変換
                data = (serializer.Deserialize(stream) as SaveGameData);
            }

            return true;
        }
}

短いですが、実装は以上です。

クラスの使用方法自体は前回と同じなので、前回の記事をご参照ください。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中