Rimozione di globalvar

Novità su GameMaker, aggiornamenti e nuove features e nuove versioni
Rispondi
Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Rimozione di globalvar

Messaggio da Homunculus »

In base a QUESTO topic su GMC, sembra che si stia pensando di rimuovere la dichiarazione di variabili globali tramite globalvar in favore di global.variabile, per questioni di streamlining del linguaggio.

Io personalmente uso sempre e solo globalvar, ma concordo con quanto detto nel topic, molto spesso diventa difficile tenere traccia di cosa é globale e cosa é locale in questo modo senza intervenire sui nomi delle variabili (per esempio scrivendo tutte le globali maiuscole o precedute da _ ). Tuttavia (come ho scritto pure su GMC) mi sembra una cavolata abnorme dover scrivere global. davanti a ogni variabile globale, dove si é mai vista una cosa del genere in un qualsiasi altro linguaggio? Secondo me il problema si risolve colorando variabili globali, di istanza e locali in modo diverso.
Andrei anche oltre però: aggiungerei una dichiarazione (opzionale) tipo this.variabile per indicare esplicitamente le variabili di istanza, in questo modo si potrebbe evitare una cosa che odio con tutto il cuore: dover chiamare le variabili locali (var) in modo diverso da quelle di istanza.
Esempio: quante volte abbiamo scritto in scripts vari

Codice: Seleziona tutto

var xx = vattelapesca;
al posto di un più chiaro

Codice: Seleziona tutto

var x = vattelapesca;
solo per evitare che x locale e x di istanza andassero in conflitto?

Che ne pensate?

Avatar utente
Vallo92
GMI Advanced
Messaggi: 1508
Iscritto il: 15/07/2011, 20:26
Specialità: Grafico
Uso: GM:Studio 2
Contatta:

Re: Rimozione di globalvar

Messaggio da Vallo92 »

Bhe, a me questo cambiamento non fa ne caldo ne freddo dato che (essendo ancora alle prime armi con GM) sono abituato ad usare sempre il "global." per indicare una variabile globale! :asd:
Comunque la tua idea di usare colori differenti mi sembra veramente ottima.... Speriamo che notino il tuo post!
-Questi occhiali da sole le stanno benissimo. Vuole provarli con le lenti più scure?
- Si vede che le sto guardando le tette?
- Si
- Allora si

Avatar utente
gameplay_extreme
GMI VIP
Messaggi: 3824
Iscritto il: 13/11/2010, 16:23
Uso: GM:Studio 2
Contatta:

Re: Rimozione di globalvar

Messaggio da gameplay_extreme »

anche a me non è mai piaciuto scrivere qual lungo "global" all'inizio di ogni variabile globale...

io in un gioco (mai pubblicato) ho usato un sistema che permette di abbreviare la cosa:
1) crei un oggetto chiamato gl persistente e lo posizioni nella prima stanza (di soltio room0)
2) per lavorare con le variabili globali a questo punto anziche scrivere

Codice: Seleziona tutto

global.nome_var
basta scrivere

Codice: Seleziona tutto

gl.nome_var
così da abbreviare il tutto...

spiegazione:
Spoiler
praticamente sarebbero delle variabili locali di un'istanza dell'oggetto gl ma sfruttate come globali grazie alla persistenza dell'oggetto
Immagine
clicca sul logo qui sopra per info e download riguardo ai miei software o per sapere come si crea un videogioco!

iscriviti qui gratuitamente a GMI !
Spoiler
- Una curiosità: come mai quell' ordine ?
- Perché formava una scaletta molto carina da vedere.


"ah ah...grazie alla annotazione scientifica ti ho fregato!"
(come disse la calcolatrice al display)

Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: Rimozione di globalvar

Messaggio da Homunculus »

Ma se lo scopo é abbreviare perché non hai usato globalvar gameplay?

Avatar utente
Cosimo
GMI Advanced
Messaggi: 2120
Iscritto il: 29/10/2009, 19:16
Uso: GM:Studio 2
Contatta:

Re: Rimozione di globalvar

Messaggio da Cosimo »

Sempre usato "global.", però, su esempio di gameplay_extreme si potrebbe usare globalvar e usare come identificatori di variabili globali nomi preceduti da una "g" (es: gScore, gLive... ecc).

L'offuscamento di cui parli è cosa standard dei linguaggi dal OOP (e non, dipende dalle regole di scope del linguaggio), in effetti è strano che GM:S non lo permetta.

Avatar utente
mac12
Membro d'elite
Messaggi: 1124
Iscritto il: 18/09/2012, 17:32
Specialità: programmazione
Uso: GameMaker 8.1
Contatta:

Re: Rimozione di globalvar

Messaggio da mac12 »

io personalmente uso sempre global.variable, mi sono abituato così, però l'idea di colorare le variabili in modo diverso mi sembra buona :sisisi:

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

Re: Rimozione di globalvar

Messaggio da Solid Snake »

Io uso entrambi... Dipende da quello che devo fare. Per esempio se devo tenere molte ds in memoria per tutto il gioco uso globalvar. Comunque è una bella idea quella della colorazione delle variabili :sisisi: .
♥♥♥♥♥♥
Immagine
♥♥♥♥♥♥
Spoiler
Immagine

Avatar utente
Xxshark888xX
Membro d'elite
Messaggi: 1497
Iscritto il: 30/05/2012, 19:17
Specialità: Un poco di tutto
Uso: GM:Studio 1.4 Pro
Località: Earth
Contatta:

Re: Rimozione di globalvar

Messaggio da Xxshark888xX »

Io sono abituato ad usare global.VARIABILE, quindi non è un problema, ma la cosa dei colori in base alla variabile è davvero un'ottima idea! :sisisi:
Contatti
Steam
Facebook

Gif
Spoiler
Immagine
Immagine
Immagine
Immagine

Avatar utente
Tizzio
GMI Honor
Messaggi: 5836
Iscritto il: 29/06/2010, 23:43
Specialità: programmazione
Contatta:

Re: Rimozione di globalvar

Messaggio da Tizzio »

dovrebbero riscrivere l'ide da 0 secondo me, ormai è obsoleto e pieno di lacune.
Stanno mettendo toppe da ogni parte.
Comunque a me non fa nè caldo nè freddo utilizzare X e Y per i cicli sulle grid anzichè x e y, non mi cambia la vita cliccare Maiusc.
La deprecazione di globalvar per me va bene, non l'ho mai usato.

Avatar utente
gameplay_extreme
GMI VIP
Messaggi: 3824
Iscritto il: 13/11/2010, 16:23
Uso: GM:Studio 2
Contatta:

Re: Rimozione di globalvar

Messaggio da gameplay_extreme »

Homunculus ha scritto:Ma se lo scopo é abbreviare perché non hai usato globalvar gameplay?
perchè con il sistema che ho detto si tiene traccia meglio di cosa è globale e cosa no
Homunculus ha scritto:per esempio scrivendo tutte le globali maiuscole o precedute da _
ah ok...sinceramente non ci avevo pensato
Cosimo ha scritto:Sempre usato "global.", però, su esempio di gameplay_extreme si potrebbe usare globalvar e usare come identificatori di variabili globali nomi preceduti da una "g" (es: gScore, gLive... ecc).
è la stessa cosa che dice homu, ma se disattivano globalvar non si può più fare...invece il sistema che dicevo io (oggetto persistente gl x var globali) si potrà continuare a fare...
Immagine
clicca sul logo qui sopra per info e download riguardo ai miei software o per sapere come si crea un videogioco!

iscriviti qui gratuitamente a GMI !
Spoiler
- Una curiosità: come mai quell' ordine ?
- Perché formava una scaletta molto carina da vedere.


"ah ah...grazie alla annotazione scientifica ti ho fregato!"
(come disse la calcolatrice al display)

Avatar utente
Cosimo
GMI Advanced
Messaggi: 2120
Iscritto il: 29/10/2009, 19:16
Uso: GM:Studio 2
Contatta:

Re: Rimozione di globalvar

Messaggio da Cosimo »

Homunculus ha scritto:(per esempio scrivendo tutte le globali maiuscole o precedute da _ )
Ok, non mi ero proprio accorto di questo, sorry :oops:

La tecnica indicata da te, gameplay, sembra si buona, ma ogni qual volta accedi ad una variabile, teoricamente l'accesso dovrebbe essere più lento perché, in realtà, si sta accedendo ad una variabile di istanza di uno oggetto (e non direttamente alla variabile). Invece l'accesso è diretto per una variabile globale.
Ovviamente, tale "lentezza" non viene percepita dai moderni computer.
Correggetemi se sbaglio.

Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: Rimozione di globalvar

Messaggio da Homunculus »

Cosimo ha scritto:
Homunculus ha scritto:(per esempio scrivendo tutte le globali maiuscole o precedute da _ )
Ok, non mi ero proprio accorto di questo, sorry :oops:

La tecnica indicata da te, gameplay, sembra si buona, ma ogni qual volta accedi ad una variabile, teoricamente l'accesso dovrebbe essere più lento perché, in realtà, si sta accedendo ad una variabile di istanza di uno oggetto (e non direttamente alla variabile). Invece l'accesso è diretto per una variabile globale.
Ovviamente, tale "lentezza" non viene percepita dai moderni computer.
Correggetemi se sbaglio.
È probabile, ma dipende da come è programmato gm internamente, bisognerebbe fare uno stress test per verficarlo.

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 23 ospiti