Oneshot Gems
지금 플레이

게임 개발자용

취소를 완전한 입력 경로로 처리

포인터 상호작용이 항상 pointerup으로 끝나는 것은 아닙니다. 터치가 페이지 스크롤이나 확대/축소로 전환되거나 기기 또는 브라우저가 해당 포인터 이벤트를 더 이상 전달할 수 없으면 브라우저가 상호작용을 취소할 수 있습니다. 게임의 상태 전이에서 취소를 처리하지 않으면 드래그한 객체가 계속 붙어 있거나 누르고 있던 동작이 멈추지 않을 수 있습니다.

이 페이지의 내용

정리 작업을 멱등적으로 만들기

pointerdown이 드래그를 시작하면 활성 포인터 ID와 그것이 소유한 개체 또는 작업을 저장합니다. pointerup과 pointercancel 모두 해당 상호작용을 종료하고 상태를 지워야 합니다. 이미 종료된 작업 후에 호출해도 무해하도록 정리를 작성하세요. 이는 캡처 손실, 창 변경 및 반복적인 방어 정리 처리를 단순화합니다.

포인터 캡처를 사용하는 경우 상호작용이 더 이상 포인터를 소유하지 않는다는 또 다른 신호로 lostpointercapture를 수신합니다. 게임에서 해당 결과를 명시적으로 정의하지 않는 한 취소를 성공적인 놓기로 해석하지 마세요. 취소된 드래그는 개체를 시작 위치로 되돌리거나 마지막 유효한 위치를 유지하거나 이동을 취소할 수 있습니다. 하나의 규칙을 선택하고 시각적 피드백으로 전달하세요.

브라우저 제스처 인계 테스트

게임 표면에서 시작하여 화면 가장자리를 향해 계속되는 드래그, 표면 위에서 시작하는 세로 페이지 스크롤, 누르고 있는 동안 회전, 다른 곳을 터치하는 두 번째 손가락을 시도해 보세요. 취소 후 캐릭터가 계속 움직이지 않고 시각적으로 버튼이 눌려져 있지 않은지 확인하세요.

touch-action 속성은 브라우저가 처리하는 동작에 영향을 줍니다. MDN은 패닝이나 확대/축소를 인계받을 때 브라우저가 포인터 취소를 전달할 수 있다고 설명합니다. 취소를 상호작용 모델이 처리해야 하는 정상적인 결과로 처리합니다.

⁨게임에서 포인터 취소⁩ 관련 질문

포인터 취소는 실패한 pointerup인가요?

포인터가 더 이상 현재 상호작용을 계속하지 않는다는 것은 별도의 신호입니다. 작업이 완료되었다고 가정하기보다는 정리를 실행하고 게임 취소 규칙을 적용합니다.

터치 동작으로 모든 포인터 취소를 방지할 수 있습니까?

아니요. 브라우저가 터치 동작을 처리하도록 안내하지만 다른 조건에서는 여전히 포인터 전달이 종료될 수 있습니다. 게임 표면에 사용자 정의 제스처 규칙이 있는 경우에도 취소 처리를 유지합니다.

추가 읽을거리

오래된 정보를 발견하셨나요? 수정 사항 제보

계속 즐겨요.

언제든 즐길 수 있는 무료 브라우저 게임. 마음에 드는 게임을 찾아 다음 최애로 만들어 보세요.

궁금한 것을 더 찾아보세요