Lo sviluppo di giochi in ambiente Android - Il Ciclo di Vita in Libgdx
Pagina 4 di 7
Un’applicazione in Libgdx ha un ciclo di vita ben definito che permette allo sviluppatore di avere un controllo totale sugli stati dell’applicazione stessa, quali: creazione, sospensione e riavvio, raffigurazione delle immagini e smaltimento delle risorse utilizzate. Tale ciclo di vita è rappresentato nella figura seguente:
Per gestire gli eventi che cambiano lo stato di un’applicazione, lo sviluppatore non deve far altro che creare una classe Java che implementa l’ interfaccia ApplicationListener di Libgdx. Questa contiene tutti i metodi necessari allo scopo:
- create(), viene chiamato una sola volta quando l’applicazione è creata. Quando ciò accade l’applicazione carica tutto ciò di cui ha bisogno per permettere all’utente di giocare: texture, sprite, spritebatch, stage…
- resize(int width, int height), viene chiamato ogni volta che lo schermo del gioco viene ridimensionato ed il gioco non è nello stato di pausa. Accetta due parametri, width ed height, che rappresentano rispettivamente i nuovi valori di larghezza ed altezza dello schermo
- render(), è un ciclo infinito che viene ripetutamente chiamato dall’applicazione durante la fase di gioco. Termina solo quando l’applicazione stessa termina. Gli aggiornamenti logici, come la nuova posizione sullo schermo che deve assumere un’immagine, vengono inseriti in questo metodo
- pause(), è un metodo che serve a gestire lo stato di sospensione del gioco e viene invocato in modi diversi in funzione della piattaforma di destinazione. In Android, viene invocato quando è premuto il tasto Home o se è in arrivo una chiamata; nelle piattaforme desktop, invece, viene invocato prima della chiamata al metodo dispose() ovvero quando l’applicazione deve essere terminata
- resume(), è utilizzato solo nella piattaforma Android e permette il riavvio se l’applicazione si trovava precedentemente nello stato di pausa
- dispose(), viene invocato quando l’applicazione deve terminare e serve per liberare memoria