cocos2d ¿cómo evito la propagación multitáctil a capas anteriores?

Estoy manejando los toques manualmente a través de una clase que contiene todos los sprites que se pueden tocar. Además, cada menú es un CCLayer, y cuando cambio de un menú a otro, uso el CCTransition### y obtener la nueva escena.

Entonces, las capas "todavía están ahí" y cuando toco un menú, la capa anterior también lo recibe... como cuando comienzo el juego en una nueva CCLayer, y luego los menús todavía se ven afectados por el toque múltiple...

Si uso un solo toque, puedo tragarme los toques, pero el juego debe tener multitoque...

¿Que puedo hacer? ¡Gracias a todos!

preguntado el 03 de mayo de 12 a las 18:05

3 Respuestas

Debe consumir el evento táctil en cualquier capa que lo necesite. Después de que una capa lo consuma, el toque ya no se propagará a las capas "anteriores".

http://www.cocos2d-iphone.org/api-ref/0.9.0-beta/_c_c_touch_delegate_protocol_8h_source.html

Para consumir un evento táctil, devuelva SÍ en el ccTouchBegan método delegado.

EDITAR: cambió el nombre del método para que coincida CCStandardTouchDelegate

- (BOOL)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
   if (condition)
      return YES;
   else 
      return NO;
}

contestado el 05 de mayo de 12 a las 09:05

Puede configurar la prioridad en 0 para la capa superior y la prioridad en 1 para la capa debajo de esta.

[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:autoprioridad:0 golondrinasToques:SÍ];

contestado el 07 de mayo de 12 a las 05:05

Podría intentar usar la propiedad

self.isTouchEnabled = NO;

dentro de la capa, no desea recibir toques.

Si usas CCButton objetos que necesita para deshabilitarlos.

Espero que ayude...

Saludos Anselmo

contestado el 05 de mayo de 12 a las 09:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.