ライブタイルにスコアを通知する

Windowsストアアプリ特有の機能、ライブタイルを利用してアプリを起動していなくても現在のスコアを表示できるようにしましょう。

ライブタイルとはWindows8もしくWindows8.1のスタート画面においてタイルに文字や画像を表示して通知を表示させる方法です。ユーザーは一度に様々な通知情報を閲覧できWindows8のユーザーとの対話画面として利用されています。

13

Windowsゲームにおいても、現在のスコアをライブタイルで表示できれば、ユーザーはそのタイルをタップしてくれる確率は上がり、より多くゲームをプレイしてくれます。

ではライブタイルを実際に実装してみましょう。

MainPage.xaml.csの上方、using とたくさん書いてある部分に以下の文を追加します。

using Windows.Data.Xml.Dom;
using Windows.UI.Notifications;

14

続いてあたり判定を行っているgameTimer_Tickメソッドの部分を編集します。

ate async void gameTimer_Tick(object sender,object e)
{
    if (IsContact(img_ball, img_keeper))
    {
        gameTimer.Stop();
        MessageDialog dialog = new MessageDialog("キーパーに止められました");
        await dialog.ShowAsync();

        this.Frame.GoBack();
        
    }else if (Canvas.GetLeft(img_ball) <5)
    {
        gameTimer.Stop();
        MessageDialog dialog = new MessageDialog("ゴールを決めました");
        await dialog.ShowAsync();

        Score.Counter++;

        //追加
        XmlDocument doc = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150Block);
        doc.GetElementsByTagName("text")[0].InnerText = Score.Counter.ToString();
        doc.GetElementsByTagName("text")[1].InnerText = "スコア";

        TileNotification notification = new TileNotification(doc);
        notification.Tag = "tileScore";

        TileUpdateManager.CreateTileUpdaterForApplication().Update(notification);
        //追加ここまで

        this.Frame.GoBack();
        
    }

}

ライブタイルの更新にはTileUpdateManagerクラスを使います。
GetTemplateContentメソッドでタイルのテンプレートXMLを取得します。
そのXMLを編集してTileUpdaterクラスのUpdateメソッドで通知を送信します。

アプリを実行して、一度でもゴールを決めたら、スタート画面を表示し、アプリ一覧を表示します。

アプリ一覧から、自分の作っているゲームアプリを選択し、スタート画面に追加しましょう。

15

スコアをライブタイルに表示することができました。

17

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください