Example #1
0
        /// <summary>
        /// データの読み込み。
        /// </summary>
        /// <param name="root">レベル データの入っているフォルダー。</param>
        /// <param name="factory">サウンドプレイヤーのファクトリ。</param>
        public async Task LoadFromLocalAsync(IStorage root, ISoundPlayerFactory factory)
        {
            var json = await root.ReadStringAsync("level.json");

            Level = Newtonsoft.Json.JsonConvert.DeserializeObject <Level>(json);

            var imageFolder = await root.GetSubfolderAsync(Images);

            ImageFiles = await imageFolder.GetFilesAsync();

            var sound = await root.GetSubfolderAsync(Sounds);

            SoundPlayer = factory.Create(sound);
        }
Example #2
0
        /// <summary>
        /// サーバーと同期してからレベルを読み込む。
        /// </summary>
        /// <param name="serverUrl">サーバーURL。</param>
        /// <param name="root">ルート フォルダー。</param>
        /// <param name="factory">サウンドプレイヤーのファクトリ。</param>
        /// <returns></returns>
        public static async Task <PackageManager> LoadAsync(string serverUrl, IStorage root, ISoundPlayerFactory factory)
        {
            await Synchronize(serverUrl, root);

            //todo: 複数のレベルを読める場合、どれを読むかの選択。今は1個目固定。
            var paths = await root.GetSubfolderPathsAsync();

            var first       = paths.First();
            var levelFolder = await root.GetSubfolderAsync(new Uri(first, UriKind.Absolute));

            var m = new PackageManager();
            await m.LoadFromLocalAsync(levelFolder, factory);

            return(m);
        }