GUI에서 버튼을 누르거나 놓을 때 입력을 처리해야합니까?


12

게임 메뉴 시스템 (레벨, 옵션 등 선택)에서 플레이어는 게임 패드의 a 버튼을 눌러 다음 화면으로 이동합니다. 어떤 조치를 취하기 전에 (즉, 다음 화면 표시) 버튼을 놓을 때까지 기다리도록 메뉴 시스템을 코딩했습니다. 최근에 진행된 일부 테스트 테스트 피드백은 우리가 반대 방향으로 행동한다고 ​​제안했습니다. 버튼을 누르 자마자 조치를 취하십시오. 궁금한 점이 있습니다. 이것이 처리되는 표준 방법은 무엇이며 차이가 있습니까?

답변:


32

컨트롤 입력이 GUI 포커스를 한 GUI 버튼에서 다른 GUI 버튼으로 직접 변경하는 게임 패드에 의해 제어되는 게임에서 컨트롤러 버튼을 누르면 해당 GUI 버튼이 활성화되어야합니다 .

(게임 패드가 화면을 가상의 마우스 커서를 이동 시키는데 사용되는 경우 또는) 마우스 / 제어기 버튼 때 마우스에 의해 제어되는 게임 화면상의 버튼이 활성화되어야 방출 이 발생하는 동일한 버튼 위에 를 누릅니다 . (단 하나의 GUI 버튼을 눌렀을 때 마우스가 움직 인 후 다른 GUI 버튼을 놓으면 GUI 버튼이 활성화되지 않습니다)

그 이유는 사람들의 마우스 제어 기술이 매우 다양하기 때문에 커서를 원하는 위치에 정확하게 배치하거나 현재 어떤 마우스 버튼을 가리켜 야하는지 정확하게 알려주지 못하는 경우가 종종 있습니다. 사람들은 GUI 버튼을 강조하기 위해 마우스 버튼을 누르고있을 수 있으며, GUI 버튼이 의도 한 것이 아니라면 마우스 버튼을 놓기 전에 커서를 버튼에서 떨어 뜨릴 수 있습니다. 누르지 않도록

그러나 게임 패드로 게임을 제어하는 ​​경우 게임 패드 버튼을 놓을 때가 아니라 게임 패드 버튼을 누를 때 조치를 취해야합니다.

5 년 후 수정 :

이 답변이 게시 된 이후, 게임 패드로 제어되는 마우스 스타일 커서를 처리하기위한 새로운 표준이 등장하기 시작했습니다.

위의 답변에서, 나는 실제로 마우스에 의해 제어되는 커서와 똑같이 작동하도록 구현되어야한다고 제안했습니다. 커서가 여전히 동일한 GUI 요소 위에있는 경우 마우스 다운시 강조 표시하고 마우스 업시 활성화하십시오.

그러나 이제 게임 패드 제어 커서는 일반적으로 게임 패드 버튼을 일정 시간 동안 누른 후 GUI 동작을 활성화합니다.(일반적으로 약 1 초). 이 시스템을 사용하려면 활성화가 발생할 때까지의 시간을 나타내는 화면 표시기가 있어야합니다 (종종 커서 자체 주위에 작은 고리가 있습니다. 마우스 오버 버튼), 버튼을 누르고있는 동안 활성화 될 요소를 강조 표시해야합니다 (그리고 마우스가 요소 위에있을 때마다하는 것이 좋습니다. 버튼을 누르고 있지 않은 경우). 버튼을 누르고있는 동안 커서가 마지막 순간에 멈춰있는 경우 GUI 요소가 실수로 활성화되는 것을 방지하기 위해 커서를 이동할 수 없어야합니다.

이 시스템의 장점은 마우스 스타일 커서가 잘못된 위치에있는 사용자가 버튼을 일찍 놓아서 해당 요소를 활성화하지 않도록하는 것입니다. 마우스를 사용하는 경우 마우스 패드보다 "릴리즈하기 전에 멀리 이동"하는 것이 게임 패드에서 덜 자연스럽고이 방법을 사용하면 게임 패드 사용자가 원치 않는 클릭을 훨씬 쉽게 중단 할 수 있습니다.

우리는 커서가 실제 마우스로 움직일 때에도이 커서 상호 작용 모델을 실험하는 몇 가지 게임을보기 시작했습니다. 일례로 No Man 's Sky는 이것을하지 않습니다. 마우스-커서 상호 작용을 처리하기위한 이러한 접근 방식이 점점 더 일반화되고 향후 몇 년 동안 예상되는지를 보는 것이 흥미로울 것입니다.


10
+1. 이 작업은 마우스 다운이 아닌 마우스 릴리스에서 수행해야합니다. 그러나 이것이 효과적이기 위해서는 GUI 요소 자체가 마우스 다운 이벤트에서 시각적 상태를 변경하는 것이 중요합니다.
Kylotan

관련성을 유지하기 위해 5 년 동안 질문을 업데이트하기 위해 다시 +1했습니다.
lozzajp December

누군가 내 이전 답변 중 하나에 대해 찬성하거나 의견을 말할 때마다 나는 그것이 최신인지 확인하기 위해 다시 읽습니다. :)
Trevor Powell

1

키를 누르 자마자 조치를 취하겠습니다.

키가 릴리스 된 후이 작업이 수행 된 가장 좋은 예는 Starcraft : Broodwar입니다. 키를 매우 빠르게 누르면 이전 키를 완전히 해제하기 전에 다음 키를 누르면 일부 명령이 무시됩니다. (1A 클릭, 2A 클릭, 3A 클릭-2는 무시 됨)

이것은 Warcraft III에서 바뀌었고 그 결과 게임은 나에게 훨씬 더 반응을 느꼈으 며 Broodwar의 'sticky control group'문제는 없었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.