WP8 720pデバイスで実行されるXNAアプリ(WP7またはWP7.5アプリ)は自動的にレターボックス化されるため、480x800のBackBufferサイズは同じままです(互換性のために私は推測します)。
XNA互換性レイヤーにバグがあるように見える場合を除いて、これは問題ありません。TouchPanelは、上部のレターボックスの空白領域のサイズだけずれているタッチ位置を報告します。
これには2つの問題があります。
- ユーザーのタッチがオフになっているように見え、ゲームプレイとメニューナビゲーションが困難になります。
- 負の方向にオフになっているため、ユーザーは画面の一番下にあるものにまったく触れることができなくなります。
53/2ピクセルのオフセットを考慮に入れて問題を回避してみました(53は、スケーリングされた座標の余分なスペースの合計量です。2で割ると、1つのレターボックスバー(上部にあるバー)だけがずれます)。これはタッチ位置を修正しますが、TouchPanelは内部で負の値を0にクランプするため、ゲームの上部にデッドゾーンがまだあることを意味します(-22から-1は0から22に変換される必要があるためですが、すべての場合負の入力値は0にクランプされ、情報が失われ、負の範囲のすべてが常に22に変換されます)。
誰かがこれに遭遇し、それを回避する方法を見つけましたか?
TouchPanel.DisplayHeight / Widthをデバイスの実際の720p値にリセットしようとしましたが、次のフレーム更新でどういうわけか480x800にリセットされます。