Creazione e distruzione di istanze in room diverse
-
- Membro
- Messaggi: 143
- Iscritto il: 05/10/2016, 15:40
- Specialità: programmazione
- Uso: GM:Studio 1.4 Free
- Contatta:
Creazione e distruzione di istanze in room diverse
Come si fa, dopo una variabile a distruggere e creare istanze in un'altra room rispetto a quella in cui si è in quel momento?
-
- Admin
- Messaggi: 12355
- Iscritto il: 19/08/2009, 16:20
- Specialità: Programmazione 3D
- Uso: GM:Studio 2
- Contatta:
Re: Creazione e distruzione di istanze in room diverse
Non si può, finchè non passi alla relativa room questa è come se non esistesse.
Si possono comunque usare molti barbatrucchi, se gli oggetti sono persistenti è sufficiente disattivarli al cambio di room così che non facciano nulla. Al cambio di room basterà riattivare l'oggetto. Questo a patto di aver già visitato la room in precedenza e quindi aver creato l'oggetto.
Un'altra soluzione, più semplice e che porta a meno bug è quella di inserire una condizione if all'interno dei vari eventi basandosi sulla variabile di cui stai parlando.
In pratica tu non andrai mai a creare o distruggere l'oggetto in questione, semplicemente non farà nulla basandosi su una variabile scelta (che NON può essere dell'oggetto bensì globale visto che l'istanza dell'oggetto ancora non esiste)
In entrambi i casi non potrai sfruttare gli eventi di creazione e distruzione per fare qualcos'altro poichè come già detto non puoi veramente distruggere e creare istanze al di fuori della propria room con l'eccezione di tenerla persistent e quindi che rimane presente al cambio di room.
Si possono comunque usare molti barbatrucchi, se gli oggetti sono persistenti è sufficiente disattivarli al cambio di room così che non facciano nulla. Al cambio di room basterà riattivare l'oggetto. Questo a patto di aver già visitato la room in precedenza e quindi aver creato l'oggetto.
Un'altra soluzione, più semplice e che porta a meno bug è quella di inserire una condizione if all'interno dei vari eventi basandosi sulla variabile di cui stai parlando.
In pratica tu non andrai mai a creare o distruggere l'oggetto in questione, semplicemente non farà nulla basandosi su una variabile scelta (che NON può essere dell'oggetto bensì globale visto che l'istanza dell'oggetto ancora non esiste)
In entrambi i casi non potrai sfruttare gli eventi di creazione e distruzione per fare qualcos'altro poichè come già detto non puoi veramente distruggere e creare istanze al di fuori della propria room con l'eccezione di tenerla persistent e quindi che rimane presente al cambio di room.
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
- Alv
- Membro
- Messaggi: 133
- Iscritto il: 14/11/2014, 22:33
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Pro
- Località: Sicilia
- Contatta:
Re: Creazione e distruzione di istanze in room diverse
Interessante! In realtà un modo c'è: si potrebbe ritardare la distruzione degli oggetti in questione a quando avviene il cambio di room. Quindi potrei creare uno script "instance_destroy_room" che non distrugge subito l'istanza, ma si salva room e istanza da distruggere in una lista di comandi destroy. Quando avviene un cambio di room, un oggetto persistent controlla quella lista ed esegue tutti i comandi relativi a quella room.
Ultima modifica di Alv il 05/12/2020, 19:06, modificato 2 volte in totale.
- BaronVsCorsar
- GMI VIP
- Messaggi: 4699
- Iscritto il: 14/02/2004, 12:05
- Specialità: Saccenza
- Uso: GameMaker 8.1
- Località: Ferrara
- Contatta:
Re: Creazione e distruzione di istanze in room diverse
Uhm... interessante quesito.
Secondo me però quando ci sono queste necessità il modo migliore è NON utilizzare l'editor room di GM, ma gestirsi tutta la popolazione delle istanze con un obj_controller.
In altre parole ti salvi con un altro metodo (file di testo?) quali oggetti devono essere creati (e in quale posizione) e obj_controller popolerà la stanza al momento opportuno.
Con altre variabili del programma deciderai cosa alterare rispetto quello che dice il file.
Ammesso che la GMS permetta ancora la creazione delle room... bhe, potresti creare una room ad hoc durante il runtime. Ma a questo punto, complicato per complicato segui il Baron's way: room vuota e oggetto controllore (un buon 60% delle mie room sono così).
Secondo me però quando ci sono queste necessità il modo migliore è NON utilizzare l'editor room di GM, ma gestirsi tutta la popolazione delle istanze con un obj_controller.
In altre parole ti salvi con un altro metodo (file di testo?) quali oggetti devono essere creati (e in quale posizione) e obj_controller popolerà la stanza al momento opportuno.
Con altre variabili del programma deciderai cosa alterare rispetto quello che dice il file.
Ammesso che la GMS permetta ancora la creazione delle room... bhe, potresti creare una room ad hoc durante il runtime. Ma a questo punto, complicato per complicato segui il Baron's way: room vuota e oggetto controllore (un buon 60% delle mie room sono così).
Schiva questo - http:\\baronvscorsar.altervista.org
by Lego: Vado in un bar e faccio "votiamo che quel tizio la in fondo venga buttato fuori", ma perché?
by Lego: Vado in un bar e faccio "votiamo che quel tizio la in fondo venga buttato fuori", ma perché?
Chi c’è in linea
Visitano il forum: Nessuno e 52 ospiti