Ci sono due aspetti che non abbiamo ancora discusso nella scheda settings.
Il primo è che c’è una casella di scelta con l’etichetta Persistent.
Normalmente, quando lasci un livello e ci ritorni dopo, il livello è reimpostato alla sua configurazione iniziale.
Questo è corretto se nel tuo gioco hai un certo numero di livelli ma non è quello che ti serve in un RPG, per esempio.
Dove il livello dovrebbe essere come lo hai lasciato l’ultima volta.
Abilitare la scelta Persistent farà esattamente questo.
Lo stato del livello verrà ricordato e quando ci ritornerai più tardi sarà esattamente come l’hai lasciato.
Soltanto quando fai ripartire il gioco il livello verrà resettato.
C’è una sola eccezione a questo.
Se hai marcato degli oggetti come persistenti, le istanze di questi oggetti non rimarranno nel livello ma si sposteranno nel successivo livello.
Il secondo, c’è un pulsante etichettato Creation code.
Ci puoi scrivere un pezzo di codice in GML che verrà eseguito quando il livello viene creato.
Può essere utile per inizializzare delle variabili nel livello, creare delle istanze, ecc.
È importante che tu capisca cosa succede esattamente quando passi a un livello nel gioco.
- Tutte le istanze, se ci sono, nel livello attuale, subiscono un evento room-end.
- Le istanze non persistenti vengono rimosse (nessun evento destroy viene generat!).
- Nel nuovo livello vengono aggiunte le istanze persistenti del livello precedente.
- Vengono create tutte le nuove istanze ed eseguiti i loro eventi Create (se il livello non è persistente oppure non è stato visitato prima).
Se si tratta del primo livello, viene generato un evento game-start per tutte le istanze. - Viene eseguito il creation code del livello.
- Tutte le istanze ricevono un evento room-start..
Quindi, per esempio, gli eventi room-start possono utilizzare le variabili impostate dal creation code del livello e nelcreation code puoi far riferimento alle istanze (sia a quelle nuove che a quelle persistenti) nel livello.
C’è un’ulteriore opzione.
Nel menu contestuale che si apre quando utilizzi il pulsante destro sull’istanza insieme al tasto <Ctrl> puoi specificare delcreation code per la specifica istanza.
Questo codice viene eseguito quando parte il livello, appena prima che l’evento Create dell’istanza venga eseguito.
Questo è molto utile se, per esempio, bisogna impostare dei parametri specifici dell’istanza.