Jaa


Windowsストア アプリ 作り方解説 XNA編 第8回(最終回) ~ストレージへの書き込み~

マイクロソフトの田中達彦です。
本連載では、Windows Phone 7用のXNAで開発したShoot EvoというゲームをWindowsストア アプリとして移植したときのポイントを紹介します。
本連載では、C#とXAMLを使用して同様のアプリを作っていきます。

[Windows PhoneとWindows 8のストレージ]
Windows PhoneもWindows 8のストアアプリも、どちらもアプリごとに独自のストレージを持っています。
このストレージにファイルやデータを書き込むことにより、アプリの状況を記録できます。
Shoot Evoでは、シュートを打った回数、ゴールが決まった回数、そしてハイスコアを記録しています。

Windowsストア アプリでは、Windows.Storage名前空間にApplicationDataというクラスがあり、そのクラスを使用してストレージにアクセスします。

Shoot Evoでは、以下のようにAppDataというグローバル フィールドを作り、データを記録させています。

ApplicationData AppData = ApplicationData.Current;

この定義を行うときは、MainPage.xaml.csの先頭部分に以下のusing節を追加しておきます。

using Windows.Storage;

[データの読み書き]
データの読み書きは、とても簡単です。
以下のSaveDataメソッドとLoadDataメソッドは、データを読み書きしているメソッドです。

private void SaveData()
{
    AppData.LocalSettings.Values["TotalShoot"] = TotalShoot;
    AppData.LocalSettings.Values["TotalGoal"] = TotalGoal;
    AppData.LocalSettings.Values["HighScore"] = GoalHighScore60secGoals;
}

private void LoadData()
{
    if (AppData.LocalSettings.Values["TotalShoot"] != null)
    {
        TotalShoot = (int)AppData.LocalSettings.Values["TotalShoot"];
        TotalGoal = (int)AppData.LocalSettings.Values["TotalGoal"];
        GoalHighScore60secGoals = (int)AppData.LocalSettings.Values["HighScore"];
    }
}

黄色くマーカーしている部分の文字列は、任意の文字列を設定できます。
例えば、シュート数を記録するためにTotalShootという名前を使用しています。
この名前として、255文字までの文字列を使用できます。

ちょっとしたデータの記録には、この方法が便利です。

[前後の記事]
第7回 : スナップへの対応と不具合の回避
番外1 : Shoot Evoリリース1を公開
番外2 : Shoot Evoのソースコード / プロジェクト ファイルを公開

マイクロソフト
田中達彦