Как изменить приоритет касания на перекрывающихся спрайтах - PullRequest
1 голос
/ 16 декабря 2011

Есть ли способ изменить приоритет касания для спрайтов cocos2d iOS?У меня есть несколько карт на экране, и они выстроены по дуге, как если бы вы держали их в руках.Поэтому в этой настройке они перекрываются, и мне нужно распознать, на какой карте было сделано касание.Я мог измерить координаты каждой вершины карт и определить видимую область карты, а затем проверить, было ли касание внутри этой области (не так ли?), Но я подумал, что будет более простой способ справиться с этим,скажете изменение приоритета касания?Это означает, что карта, ближайшая к экрану, будет иметь наивысший приоритет, и она будет продолжать уменьшаться по пути к фону, так что даже если касание было сделано на 2 спрайтах одновременно (выше и ниже одного), она быбыть зарегистрированным только для спрайта с более высоким приоритетом.

Чтение в Интернете показало только способы изменения приоритета для спрайта и слоя, чтобы определить, было ли касание выполнено для слоя или спрайта, но этоне то, что я хочу.

1 Ответ

0 голосов
/ 16 декабря 2011

Насколько я знаю, по умолчанию вы получаете именно такое поведение, спрайты, расположенные ближе (по оси z) к вам, имеют приоритет.Тем не менее, я думаю, что они передают событие и тем, кто стоит за ними.Итак, я думаю, вам нужно съесть событие, когда оно попадет на любой из ваших спрайтов.Для этого просто верните NO при перезаписи метода «touchBegin».Надеюсь, это поможет.

...