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のソースコード / プロジェクト ファイルを公開
マイクロソフト
田中達彦