Come modificare il layer di Sprite durante il runtime in andengine Scene?Come modificare il livello Sprite in andengine
risposta
Dipende da ciò che si capisce cambiando livello. Se si intende l'indice z di entità, è possibile utilizzare entity.setZIndex(int) e chiamare manualmente parent.sortChildren() sul genitore del proprio sprite.
Se cambiando livello si intende il distacco da un genitore e il collegamento a un altro genitore, questo è un altro problema.
Ho lavorato a questo problema recentemente. È frustrante mantenere lo zorder degli sprite usando sortChidren e setZOrder, specialmente se si dispone di un complesso arrangment di layer (Scene Entitys).
Ho trovato che aggiungendo questo override a ogni livello derivato Entity che avete.
@Override
protected void onDrawChildren(GL10 pGL, Camera pCamera) {
getParent().sortChildren();
super.onDrawChildren(pGL, pCamera);
}
Questo consente di impostare i sprite.setZOrder ordine Z (ordine ++) e si sono garantiti il vostro soggetto è un tratto nell'ordine sprite è stato impostato almeno.
Suppongo che questo aggiunga un po 'di overhead, ma non mi accorgo sul mio galaxy asso. (ancora per provare a profilarlo)
Il problema è che quando si chiama setZOrder (...) è necessario chiamare sortChildren dopo aver collegato ogni sprite/entità successiva aggiunta al genitore, altrimenti qualsiasi entità zorder superiore verrà disegnata sopra da entità aggiunte di recente poiché setZOrder non imposta effettivamente l'asse z dell'oggetto 3d. Solo l'ordine in cui viene disegnato l'oggetto. (tutti gli oggetti andengine hanno lo stesso valore dell'asse z indipendentemente dal valore mZIndex nell'entità) Quindi è necessario ordinare i bambini ogni volta che una nuova entità viene aggiunta all'entità padre.
Questo è quello che ho finora. Per favore correggimi se ho torto o ho qualche soluzione migliore.
ma ora penso di sovrascrivere 'attachChild()' e farlo lì sarebbe molto più efficiente. – Justin
- 1. Android AndEngine: sprite.detachSelf() non rimuove lo sprite
- 2. AndEngine- Disegno del figlio dello sprite dietro il suo genitore
- 3. Dimensioni dello sprite su diverse dimensioni dello schermo Andengine Android
- 4. Come applicare lo sfondo sfumato in andengine
- 5. come modificare dinamicamente la posizione dello sprite?
- 6. Come spostare uno Sprite in direzione Fling/Swipe (Diagonally) utilizzando AndEngine
- 7. Visualizzazione annuncio in AndEngine
- 8. Modificare il livello di priorità in Log4j
- 9. Disegnare un percorso in AndEngine per spostare un immagine o sprite
- 10. Come iniziare con andengine
- 11. Come distruggere e ricreare una scena in andengine correttamente?
- 12. Come modificare il livello slf4j in fase di esecuzione?
- 13. Come modificare il volume a livello di programmazione in Ubuntu
- 14. AndEngine background image
- 15. Andengine dissolvenza in entrata/uscita e modificatori alfa non funzionanti
- 16. Installazione di AndEngine in Eclipse
- 17. Modifica delle immagini sprite in Sprite-Kit
- 18. Aggiungi sfondo alla scena Andengine Android
- 19. Modificare il fuso orario in Android a livello di programmazione
- 20. Android: come modificare il livello di registrazione predefinito?
- 21. Come modificare il livello di log dalla riga di comando?
- 22. Come modificare il colore di UINavigationBar a livello globale?
- 23. Come modificare il testo di UIBarButtonItem al livello di programmazione?
- 24. AndEngine GLES 2 - schermata nera, senza errori
- 25. Esempi su AndEngine
- 26. Impossibile modificare il livello di prezzo nell'app In Acquista
- 27. AndEngine - Impossibile istanziare l'attività
- 28. Come creare un'immagine sprite
- 29. Come modificare la risoluzione di un livello raster in R
- 30. Come ottenere risorse dalla cartella estraibile - AndEngine
ho lo stesso problema, qualche soluzione? – NemoPhobia
hai provato a ritagliare lo sprite dal livello e ad associarlo al livello in cui desideri che lo sprite sia? – TheMadCapLaughs27
sì, ho provato, ma changine il simile questo causerà nervosismo. – stackuser