Ottenere appropriata evento di tocco sul sprite multiplo in gioco usando andengine
Domanda
Sto facendo un gioco utilizzando andengine in Android, in questo gioco di vari sprite (uova) si muovono qua e là sul screen.i voglio entrare evento di tocco di ogni sprite in modo indipendente, a volte quando uno sprite è rispetto ad un altro, allora onAreaTouched ( ) dare evento tocco di entrambi gli sprite, nel caso in cui quando ritornerò qui false o super.onAreaTouched (), se torno qui vero allora uno sprite in movimento sopra l'area che è registrato per un altro sprite non ha potuto dare il tocco evento
Allora, qual è il modo appropriato per ottenere evento di tocco di sprite solo mostrato superiore.
Soluzione
L'altro approccio è possibile utilizzare è un IOnSceneTouchListener
, con il metodo onSceneTouchEvent
. È possibile ottenere la X & Y dal parametro pTouchEvent
, e verificare se qualche sprite lo contiene.
Ora, nel caso in cui non si sapeva, ogni entità ha una lista di bambini (e la scena è un'entità). Quando un'entità si disegna, si chiama anche i metodi draw dei bambini. metodi draw I bambini sono chiamati dal primo metodo bambino fino all'ultimo (come il loro ordine nella lista); Pertanto, il primo figlio della lista viene disegnato per primo. L'ultimo è disegnato per ultimo. Quindi l'ultimo sarà sempre la priorità su qualsiasi altra entità è disegnato sopra.
Quindi, iterate oltre la lista di scena i bambini dagli ultimi bambini alla prima. Se uno sprite contiene il punto di contatto, lasciarlo gestire l'evento e return true per dire che avete consumato l'evento.