if object has property (o qualcosa del genere).

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Rispondi
Avatar utente
boxbuilder
Membro
Messaggi: 158
Iscritto il: 25/06/2015, 10:37
Specialità: programmatore
Uso: GM:Studio 1.4 HTML5
Contatta:

if object has property (o qualcosa del genere).

Messaggio da boxbuilder »

Ciao a tutti,
mi chiedo se ci sia un modo per capire se un oggetto generico abbia una certa proprietà assegnata.
qualcosa del tipo:

Codice: Seleziona tutto

with(all){
	if(instance_has_property(id, "disabled"){
		disabled = true;
	}
}
immagino non sia possibile, ma se qualcuno avesse dei suggerimenti glie ne sarei grato.

Ciao!

Avatar utente
CaptainOlon
Membro attivo
Messaggi: 441
Iscritto il: 30/07/2011, 14:56
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Località: Salerno
Contatta:

Re: if object has property (o qualcosa del genere).

Messaggio da CaptainOlon »

Potresti usare una variabile per ogni proprietà. Tipo nel create event dell'oggetto che ha una proprietà:

Codice: Seleziona tutto

disabled = true //o qualsiasi altro valore
E poi per vedere se un oggetto ha una determinata proprietà potresti usare la funzione is_undefined che restituisce vero se la variabile indicata non è stata definita e quindi non contiene nessun valore:

Codice: Seleziona tutto

with(all){
    if(!is_undefined(disabled)){
        //COSE
    }
}
PS: non ho testato se funziona, ma teoricamente dovrebbe. Correggetemi se mi sto sbagliando.
Immagine
Immagine

Solid Snake
GMI Advanced
Messaggi: 2093
Iscritto il: 19/12/2010, 16:17
Specialità: Programmazione
Uso: GM:Studio 1.4 Standard
Contatta:

Re: if object has property (o qualcosa del genere).

Messaggio da Solid Snake »

Se non stai usando Studio (cosa alquanto improbabile) puoi usare le funzioni variable_*
♥♥♥♥♥♥
Immagine
♥♥♥♥♥♥
Spoiler
Immagine

Avatar utente
boxbuilder
Membro
Messaggi: 158
Iscritto il: 25/06/2015, 10:37
Specialità: programmatore
Uso: GM:Studio 1.4 HTML5
Contatta:

Re: if object has property (o qualcosa del genere).

Messaggio da boxbuilder »

Solid Snake ha scritto:Se non stai usando Studio (cosa alquanto improbabile) puoi usare le funzioni variable_*
Ebbene sì, sto usando studio. :banana:

Per il momento ho risolto in modo simile a quanto suggerito da
CaptainOlon ha scritto:Potresti usare una variabile per ogni proprietà.
con una soluzione un po' OOP.
Ho creato un oggetto "obj_deactivable" a cui nel create assegno disabled = false.
poi setto questo oggetto come parent di tutti gli oggetti nei quali mi serve assegnare la proprietà disabled.

così quando voglio settare la proprietà su tutte le istanze mi basta fare:

Codice: Seleziona tutto

with(obj_deactivable){
	disabled = true;
}
Questo per il momento mi sembra il sistema più efficiente.

ciao!

Rispondi

Chi c’è in linea

Visitano il forum: Bing [Bot] e 28 ospiti