カスタムのUIフレームワークを使用して、XNAを使用してXBox用のアプリケーションを開発しています。私は、ナビゲーションシステムを開発し、このために は、ナビゲーションシステムは、以下のように動作します:Xbox XNA UIのナビゲーションロジック
システムがページの存在、各ページには、私は彼らを呼ばれると、すべてが 一つ以上のPageTabsを持っている子UI要素が含まれています。
pagetabs 2つの特性を有するが、XとY が(私はポイントを使用している可能性が知っているが、pagetabクラスはまた、いくつかの方法があります)、対象となるシステムの現在の状態に基づいて
を、I入力をチェックし、右側のページタブで要素のイベントを発生させます。 だから私は、この配列があります。そして、 ページ[] { スタート、 終了し、 設定、 ...}
を、私はスタートのように、私の状態のための列挙型を使用、などのページナビゲート要素にアクセスこの:
ページ[スタート] .Navigatables []
これは、ページのすべてのpagetabsを含む配列です。あなたが降りると、Yは増加し、その逆もあります。 X
と同じです。これはうまくいきます。これは、最大値&分のX値を念頭に置いているので、常に何かが選択されます。
しかし、このシステムには1つの重大な欠陥があります.1つの状態に対してボックス入力しかできません。 しかし、これ、私の状態がスタートです 、私はスタートページに例えば午前言う、と私は2つのボタン、pagetabsで、ポップアップを持っている: (1,1)&(2,1)
システムとしてそれは現在設計されており、選択されたpagetabで現在の状態のすべての要素を探しますが、ポップアップが表示されている場合は、ポップアップだけがナビゲーションを受け入れ、その他はすべてユーザーの入力に反応しないようにする必要がありますゲームパッド)。
PageTabクラスに余分なListを追加しようとしていましたが、これは要素が入力を受け付ける可能性のある 'substates'を含んでいますが、より良い方法が必要です。
私はそれを十分に説明してくれればと思っています。あなたがもっと情報を必要としたら、私はそれを提供して嬉しく思います。