2012-03-03 5 views
0

사용자 정의 UI 프레임 워크와 함께 XNA를 사용하여 XBox 용 응용 프로그램을 개발하고 있습니다. 나는 네비게이션 시스템을 개발이를 위해 는 네비게이션 시스템은 다음과 같이 작동합니다Xbox XNA UI 용 탐색 로직

시스템은 페이지의 존재, 각 페이지는 내가 그들에게 전화로 모든 하나 이상의 PageTabs이 자식 UI 요소가 포함되어 있습니다.

pagetabs는이 개 특성을 갖는은 X와 Y 이 (내가 포인트를 사용할 수도 알고 있지만, pagetab 클래스는 몇 가지 방법이있다), 객체 시스템의 현재 상태를 바탕으로

을, I 입력을 확인하고 오른쪽 pagetab을 사용하여 요소에 이벤트를 발생시킵니다. 그래서 나는이 배열이 있습니다 페이지 [] { 시작, 종료, 설정, ...} 그런 다음

, 나는 시작처럼, 내 상태에 대해 열거를 사용을하고 페이지를 같은 안내 가능한 요소에 액세스 이 :

페이지는 [시작] .Navigatables은 []

이 페이지의 모든 pagetabs을 포함하는 배열입니다. 당신이 내려갈 때, Y는 증가하고, 그 반대도 마찬가지입니다. 같음 X

위의 코드는 매우 유용합니다. 최대 & 분을 염두에두고 & X 값을 염두에두고 있습니다.

그러나이 시스템에는 하나의 큰 결함이 있습니다.이 시스템은 1 개의 상태에 대해서만 상자 입력을 할 수 있습니다. 그러나 내가 시작 페이지에 예를 들어 나는 말을 은 나의 상태는 시작이다, 나는 2 개 버튼, 팝업을 가지고 pagetabs : (1,1) & (2,1)

시스템 등 그것은 현재 설계되었으며, 선택된 pagetab을 사용하여 현재 상태의 모든 요소를 ​​찾을 것입니다. 그러나 팝업이 보이면 팝업 만 탐색을 허용하고 나머지는 사용자 입력에 반응하지 않도록해야합니다 게임 패드).

요소가 입력을 받아 들일 수있는 '하위 상태'가 포함 된 PageTab 클래스에 추가 목록을 추가하려고 생각했지만 더 좋은 방법이 있어야합니다. 그렇지 않습니까?

나는 그것이 충분히 설명해 주었으면한다. 당신이 더 많은 정보를 필요로한다면 나는 그것을 제공하게되어 기쁠 것이다.

답변

0

나는 여분의 Z- 인덱스 접근법을 사용했다. 일부 요소에 다른 Z- 색인을 사용하고이 입력을 잡는 것이 매력처럼 작동합니다. 또한 플래그를 추가했습니다 : IndependentNavigation : 일부 요소는 Z- 인덱스 독립적입니다 (예 : 드롭 다운이 열렸을 때 다른 곳을 클릭 할 수 있음)

0

시스템에서 어떤 종류의 플래그를 사용하여 팝업 창이 활성화되어있는 것이 좋습니다. 다른 모든 요소는 disabled로 표시됩니다. 그런 다음 팝업을 닫으면 다른 요소가 다시 활성화됩니다. 요소에 입력을 전달할 때이 플래그를 검사하여 사용 가능 요소에만 보낼 수 있습니다.