2011-12-16 3 views
1

cocos2d iOS 스프라이트의 터치 우선 순위를 변경하는 방법이 있습니까? 내가 가지고있는 것은 화면에 여러 장의 카드가 있으며 손에 들고있을 때와 같은 모양으로 배열되어 있습니다. 그래서이 설정에서, 그들은 겹쳐서, 나는 터치가 만들어진 카드를 인식해야합니다. 카드의 각 정점 좌표를 측정하고 카드의 보이는 영역을 결정한 다음 터치가 해당 영역 내부에 만들어 졌는지 확인할 수 있습니다 (그렇습니까?)하지만이 방법을 다루는 더 쉬운 방법이있을 것이라고 생각했습니다. 터치 우선 순위를 변경한다고 말하고 싶습니까? 즉, 화면에 가장 가까운 카드가 가장 높은 우선 순위를 가지며 배경으로가는 도중에 계속 감소하므로 터치가 한 번에 2 개의 스프라이트 (위 및 아래)에서 이루어 지더라도 높은 우선 순위를 갖는 스프라이트에만 등록된다.겹치는 스프라이트의 터치 우선 순위 변경 방법

인터넷에서 읽기만 스프라이트와 레이어의 우선 순위를 변경하여 레이어 또는 스프라이트에서 터치가 이루어 졌는지 여부를 정의 할 수 있지만, 원하는 것은 아닙니다.

답변

0

필자가 아는 한, 기본적으로 당신은 정확하게 그 동작을 얻는다. sprite는 가까이에 (z 축에) 우선 순위를 갖는다. 그러나 나는 그들도 그들 뒤에있는 사람들에게 사건을 전달한다고 생각한다. 그래서, 당신이해야 할 일은 스프라이트에 도착했을 때 이벤트를 먹는 것입니다. 이렇게하려면 "touchBegin"메소드를 덮어 쓸 때 NO 만 리턴하십시오. 희망이 도움이됩니다.

+0

이봐, 고마워. 나는 비슷한 것을했는데 터치가 감지되었을 때 touchBegan에서 TRUE를 반환했다. 따라서 터치가 더 이상 울리지 않을 것이다. return 문이 실행되는 즉시 함수가 끝나야하기 때문이다. – Prst