回答:
タッチサムスティックのXNAサンプルがここにあります
繰り返しますが、dpadは、デバイスのようなタッチスクリーンに適したインターフェイスではない可能性があります。
iPhone用のInfinity Bladeで壮大なことが行われたようなものは、あなたにインスピレーションを与えるかもしれませんMovie Link
タッチスクリーンデバイスでDパッドをエミュレートしようとすることを思いとどまらせることはできますか?
タッチスクリーンでDパッドをエミュレートする際の問題は次のとおりです。
タッチスクリーンデバイスは、「真のDパッドがない」デバイス以上のものです。タッチスクリーンデバイスを使用すると、プレーヤーは画面のどこでも触れることができるので、表示されているゲーム要素と対話できます。これにより、幅広いゲームデザインの可能性がもたらされ、これらのデザインはエミュレートされたDパッドよりもはるかに使いやすいと思われます。
これが最も有用な答えではないことはわかっていますが、別のプラットフォームからプロジェクトを移植する場合を除き、仮想D-Padについて再考することをお勧めします。仮想D-Padのほとんどの実装は良くても不十分であり、触覚フィードバックが不足しているため、プラットフォームに適していません。
プラットフォームの弱点を構築するのではなく、プラットフォームの長所を強調するゲームへのインターフェースを構築する方がはるかに良いでしょう。
他の人が言ったように、環境に合ったデザインを考え出すことをお勧めします。デザインを環境に強制するのではなく、D-Padに固執する場合は、次のようにします。
「タッチポイント」をマウスカーソルと考えると、基本的にはカーソルの動きに反応する「ホットスポット」を作成します。
それを行うための最良/最も簡単な方法は、プレイヤーがすでに指を持っている可能性が最も高い下隅の1つに半透明(ゲーム画面を覆っていることを覚えておいてください)のボックスまたは円を作ることです。次に、ホットスポットの中心に対するプレイヤーの指の位置を追跡するだけで、それが入力デルタ値になります。
ここのほとんどの人は、D-Padが悪い考えだと思っているのを見て、彼らは正しいです-ほとんどの場合。Android用GameloftのDungeon Hunterは、タッチスクリーン用の優れたD-Padの好例です。応答性があり、360度の方向を持ち、「バカ」ではありません。「ダム」ではないというのは、D-Padを押してD-Padエリアから指をスライドさせると、画面上で起こることと干渉しないということです。したがって、誤ってD-Padエリアから抜け出しても、動きを失うことはありません。
360度の方向性と範囲外の応答性が重要だと思います。それができれば、D-Padを正しく実行できる可能性があります。