ContactManager WindowsPhoneのみ、ContactManagerAPIで連絡先の検索、取得を行うことができます。   検索

取得

 

ContactPicker WindowsRuntimeでは連絡先ピッカーが管理する連絡先を自由に選択することができます。 連絡先ピッカーとは、マニフェストファイルで宣言タブの「連絡先ピッカー」が宣言されているアプリが、ほかのアプリから呼ばれ、自身の所有する連絡先をアプリに代わって選択するピッカーのことです。   Windows8.1で代表的な連絡先ピッカーアプリはPeopleです。 Peopleアプリを連絡先ピッカーとしてContactPickerを起動すると連絡先情報を取得することができます。   ContactPickerの名前空間である以下を追加します。

  まずContactPickerのインスタンスを生成します。

CommitButtonTextとは、連絡先ピッカーで連絡先を選択したときに決定ボタンに表示される文字です。   連絡先のどの要素を取得するかは、DesiredFiledsWithContactFieldTypeによって決定します。

  最後にPickContactAsyncメソッドで連絡先ピッカーへと処理を渡します。 連絡先ピッカーが連絡先を選択すると、Contact型の値を返します。

  複数の連絡先を取得する場合はPickContactsAsyncメソッドを呼びます。

 

ゲームのセーブデータ ゲームにおいて獲得したスコアや最高記録などはセーブデータとしてストレージに保存します。 そして次回以降の起動でセーブデータを復元します。   WindowsRuntimeにおけるデータ保存方法 WindowsRuntimeでは設定データとファイルデータの2つのデータ保存方法があります。 単純な設定データなどは設定データとして~Settingに保存します。 大きいデータやファイル単位で保存したいデータは~Folder内にファイルを作って保存します。 設定データは、ApplicationDataContainerクラスで作られていて、キーそれに対応する値のセットでつくられます。 ファイルデータは、StorageFolderクラスとして保存するフォルダーを取得することができるのでそこにファイルとして書き込みます。 具体的には、ApplicationDataクラスの中に、 設定データ(ApplicationDataContainer型) LocalSetting – ローカルの設定データ RoamingSetting – ローミング設定データ ファイルデータを入れるフォルダー(StorageFolder型) LocalFolder – ローカルファイルフォルダー RoamingFolder – ローミングファイルフォルダー TemporaryFolder – 一時的なデータを保存するファイルフォルダー LocalCacheFolder – 一時データ? の6つのプロパティがあり、そこにデータを入れることになります。   ローカルデータとローミングデータ さらに、WindowsRuntimeでは複数のデバイス間でデータを同期できるようにデータローミングという概念を採用しています。 Roamingがつく設定やフォルダーにデータを入れると、データはOneDriveで同期され、別のデバイスでも同じデータを扱うことができます。 ユニバーサルアプリの場合、「アプリをストアに関連付ける」をした後、WindowsアプリとWindowsPhoneアプリ間でデータがローミングされます。   別のデバイスでゲームをプレイしても、自分のスコアを引き継ぐことができるため、データローミングは非常に重要です。   ローカル設定データ 以下の名前空間を追加します。

  ローカル設定データは、LocalSettingというコンテナーにキーと値をセットにしてデータを保存します。

データを復元するときは、ContainsKeyを使ってキーがすでにあるかどうかを判定しましょう。

 ローミング設定データ データが同期される設定データは、RoamingSettingに保存します。 保存方法はLocalSettingと同じですが、この設定データは異なるデバイス間の同じアプリで同期されます。

データ復元

 ローカルファイルデータ 大きいファイルを保存する場合は、LocalFolderにStorageFolderを作って保存しましょう。 StorageFildeのCreateFileAsyncメソッドを使ってファイルを作ります。 […]

加速度センサー ほとんどのWindowsタブレットには加速度センサーが付いています。 加速度センサーはデバイスを傾けるだけで入力をすることができるのでよりゲームが直感的になります。   加速度センサーを利用するにあたって、「どの軸を固定とした回転か」を考える必要があります。 以下の図のように デバイスの上向きをY軸、 デバイスの横向きをX軸、 デバイスの奥向きをZ軸 として座標軸考えます。     加速度の値はちょうど軸の向きが重力と同じ向きになると1.0、重力と逆向きで0.0の値をとります。     X軸固定回転 デバイスのX軸を固定とする回転は、AccelerationY値とAccelerationZ値が変化します。     Y軸固定回転 デバイスのY軸を固定とする回転は、AccelerationX値とAccelerationZ値が変化します。     Z軸固定回転 デバイスのZ軸を固定とする回転は、AccelerationX値とAccelerationY値が変化します。     Accelerometer 加速度センサーを利用するには、Accelerometerクラスを使います。 以下の名前空間を追加しましょう。

  Accelerometerクラスのインスタンスをメンバに追加します。

  InitializeメソッドでAccelerometerのGetDefaultメソッドでAccelerometerのインスタンスを取得します。 もし、デバイスに加速度センサーがついていなければGetDefaultメソッドがnullを返します。 ReportIntervalでどれだけの間隔で加速度センサーの値を更新するかを決定します。

  UpdateメソッドでGetCurrentReadingメソッドをもちいて現在の加速度センサーの値を取得します。

  サンプル

      サンプルコード SmapleGameMono_9_InputAccel.zip   目次

ゲームコントローラ入力 複雑なWindowsゲームとなると、どうしてもタッチやマウスだけでは対応できなくなります。 より快適にゲームをプレイしてもらえるように、MonoGameはゲームコントローラの入力にも対応しています。 しかし、ゲームコントローラはだれでも持ってるわけではないので、あくまでオプションのような位置づけで実装します。   XInput XInputとは、XBox360のコントローラからの入力を検知するAPIとしてDirectXに実装されています。 MonoGameでも同じようにXInputに対応したコントローラの入力を検知することができます。 また、HID(ヒューマンインターフェースデバイス)対応である場合、WindowsRuntimeでは外部ドライバを使わずに標準で認識することができます。 Windowのゲームを作るにあたってはXBox360のコントローラが推奨ですが、XInputやHIDに対応したコントローラならば対応することができます。         各ボタンの取りうる値 Button ボタンはButtonState列挙型によって、PressedかReleasedのどちらかの値をとります。 StartButton BackButton A Button B Button X Button Y Button DPad Left DPad Right DPad Up DPad Down Right Shoulder LeftShoulder はすべてButtonStateの値を返します。 Thumb Stick Thumb Stickはスティックで4方向の入力を受け付けます。 一つの軸に対して、-1.0~1.0までの連続的な値を返します。   Trigger トリガーは右と左についていて、0.0~1.0までの連続的な入力を受け付けます。 どれだけ深く入力しているかを検知することができます。     GamePad ゲームパッドからの入力を受け付けるにはGamePadクラスのGetStateメソッドを実行します。 GetStateメソッドでPlayerIndex列挙型を与えて、何番目のコントローラかを判断します。 コントローラは最大4つまで受け付けることができます。 以下の名前空間を追加します。 […]