Я сейчас создаю игру Cocos2D, и сейчас я делаю шаг вперед по своим спрайтам и вижу, какие из спрайтов попали в касание (они перекрываются в моем приложении)
Затем для каждого попадания в спрайт я использую [sprite convertTouchToNodeSpace], чтобы получить координату X, Y внутри спрайта, которую я могу использовать (хотя ось Y переворачивается) для ссылки на CGImage, с которым я создал спрайт.
Если пиксель в точке касания является «чистым», то есть альфа-0, тогда спрайт действительно не был затронут, и я проверяю следующий спрайт в z-порядке, чтобы увидеть, имеет ли он цвет там, где он был затронут.
Иногда мне кажется, что я должен использовать двухцветное изображение маски для каждого спрайта, а не спрайт. Но я г-н. заставь это работать, затем сделай это быстро.
Я понимаю, что это не супер эффективно, но у меня не так много спрайтов, и я делаю это только для касаний.