OpenGL을 사용하여 iPhone 게임을 만들고 있습니다. 게임 컨트롤 인터페이스를 작성하기 시작했을 때 문제가 발생했습니다. 나는 4 개의 버튼 (왼쪽, 오른쪽, 공격, 점프)을 가지고 있으며, 동시에 누를 수 있어야합니다. 내가 필요한 것은 Stationary를 touches하는 함수와 같다 (touchesBegin, Moved와 End 만있다). 나는 현재 화면상의 모든 손가락을 반환하는 함수가 필요합니다. (현재 단계는 중요하지 않습니다.) 그러나이 함수는 내가 누르기 시작하거나, 손가락을 움직이거나 손가락을 뗄 때만 돌아옵니다. 버튼을 누르면 손가락이 제자리에 남아있을 때의 기능입니다.iPhone에서 멀티 터치 처리
touchesBegin, touchesMoved 및 touchesEnd를 사용하여 코드를 작성하려고했지만 한 함수는 다른 순서와 다른 순서로 손가락 목록을 반환하므로 모든 것을 스크류하고 멀티 터치가 불가능 해집니다.
이상적인 기능은 현재 화면에있는 모든 손가락을 반환 한 다음 모든 항목을 반복하여 위치가 일부 버튼의 위치와 일치하는지 확인한 다음 해당 버튼을 활성화 할 수 있습니다. 어떻게하면 될까요?
그러나 문제는 "버튼에 여전히 터치가 있는지 확인합니다"부분입니다. 어떻게해야합니까? 나는 그것에 대한 어떤 기능도 찾을 수 없었다. 터치 만 시작, 이동 또는 종료 할 때만 이벤트를 수신합니다. 사용자가 움직이지 않고 버튼을 누르고 있으면 눈치 채지 못할 것입니다. 그게 내가 원하는 위치에 접촉이 있는지 확인하는 것입니다. – HLorenzi
버튼 안에 터치가있는 경우 (touchesBegan/Moved 콜의 결과로 감지 됨) 터치 이후 아무 것도 수신하지 못했습니다. 이동/종료/취소 : 터치가 없음을 나타내는 호출 버튼 안에. 터치 이벤트 사이의 현재 상태에 대해 단추를 쿼리 할 수 있도록 버튼 당 하나의 추가 값 (아마도 isPressed라는 부울)을 저장해야합니다. 버튼 상태를 저장하면 터치 콜백에 의존하지 않는 지속적인 정보를 얻을 수 있습니다. – warrenm
네, 모든 버튼마다 isPressed를 저장하고 있습니다. 그러나 문제는 멀티 터치 기능으로 인해 발생합니다. 내가 터치를했는지 여부를 추적 할 수 없습니다. 이동 한 이벤트가 일부 터치의 동일한 손가락 인 경우입니다. 예를 들어, 사용자가 화면에서 손가락을 움직이고 첫 번째 버튼을 누르지 않고 두 번째 버튼에서 멈췄는지 알 수있는 방법이 없습니다. -이 시나리오에서는 터치가 없었기 때문에이 시나리오에서는 이동 한 손가락이 첫 번째 버튼을 누른 것과 같은지 알 방법이 없습니다 (그래서 나는 그것을 풀 수 있습니다). 설명하기가 약간 어렵습니다 ... – HLorenzi