Obtener un evento táctil apropiado en múltiples sprite en el juego usando AndEngine
Pregunta
Estoy haciendo un juego usando AndEngine en Android, en este juego varios sprites (huevos) se mueven aquí y allá en la pantalla. Quiero obtener un evento táctil de cada sprite de forma independiente, a veces cuando un sprite está sobre otro onAarateuched () dar contacto Evento de ambos sprites, en caso de que regrese aquí falso o súper.Onaratouched (), si regreso aquí, entonces, un sprite que se mueve sobre el área que está registrada para otro sprite no podría dar el evento táctil
Entonces, ¿cuál es la forma apropiada de obtener el evento táctil de solo sprite superior mostrado?
Solución
El otro enfoque que podría usar es un IOnSceneTouchListener
, con el onSceneTouchEvent
método. Puedes obtener el X&Y del pTouchEvent
parámetro, y verifique si algún sprite lo contiene.
Ahora, en caso de que no lo supiera, cada entidad tiene una lista de niños (y su escena es una entidad). Cuando una entidad se dibuja, también llama a los métodos de dibujo de los niños. Los métodos de sorteo de los niños se llaman desde el primer método infantil hasta el último (como su orden en la lista); Por lo tanto, el primer niño en la lista se dibuja primero. El último se dibuja en último lugar. Asi que El último siempre anulará cualquier otra entidad en las que se dibuja.
Entonces, iterar en la lista de niños de la escena desde los últimos niños hasta el primero. Si algún sprite contiene el punto de contacto, deje que maneje el evento y Devolver verdadero Decir que consumiste el evento.