operatori logici (= || ==)?

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:

operatori logici (= || ==)?

Messaggio da boxbuilder »

Ciao a tutti.

Come al solito ho un problemino con studio e forse qualcuno più esperto con gml potrebbe aiutarmi.

Poniamo che io abbia due variabili:

Codice: Seleziona tutto

var a = 100;
var b = 200; 

show_debug_message (string(a = b))  //output "0";

a = b;
show_debug_message (string(a))  //output "200";

Il problema è che per GML a = b è uguale ad assegnazione o uguaglianza a seconda del contesto.
C'è un modo per rendere l'equivalenza rigorosa come in tutti gli altri linguaggi "normali"?

Codice: Seleziona tutto

var a = 100;
var b = 200; 

show_debug_message (string(a = (a+b))  //output "0", io vorrei output "300";


Grazie in anticipo per l'aiuto.

Avatar utente
doom13
Moderatore
Messaggi: 2093
Iscritto il: 31/08/2012, 15:40
Specialità: Programmazione
Uso: GM:Studio 2
Contatta:

Re: operatori logici (= || ==)?

Messaggio da doom13 »

Ciao, se togli le parentesi da a+b? Oppure metti le parentesi intorno all'espressione.

Ma soprattutto, perché vuoi per forza fare tutto su una riga? :asd:
Immagine
Spoiler
Maze [sospeso]
Isom (titolo provvisorio) (Windows & Android) [sospeso]
Keep Calm & Jump (Android) [In corso]
The Graywall (Windows) [Completo]
DTB (Windows & Android) [Completo]
The Last Spell (Windows) [Completo]
Dukenstein: Return to the house (Windows) [Completo]
DMSystem (Windows) [Completo]
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"

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

Re: operatori logici (= || ==)?

Messaggio da boxbuilder »

doom13 ha scritto:Ciao, se togli le parentesi da a+b? Oppure metti le parentesi intorno all'espressione.
Ciao, se tolgo o aggiungo parentesi non cambia nulla, il problema c'è sempre.
doom13 ha scritto:Ma soprattutto, perché vuoi per forza fare tutto su una riga? :asd:
allora, non è che voglio fare tutto su una riga, ma è una questione di potenzialità del linguaggio.
Metti che voglio risolvere il solito esercizio di swap dei valori di due variabili senza crearne una terza.
Una roba del genere:

Codice: Seleziona tutto

var a, b;
a = 100;
b = 200;

a = a ^ b ^ (b = a);
In tutti i linguaggi "normali":
//a = 200;
//b = 100;

in game maker:
//a = 178 perché: (a^b)^(b==a); (178^0); 178;
//b = 200 perché nessuna assegnazione è stata effettuata.

Utilizzando gli operatori logici è abbastanza frequente dover fare delle assegnazioni al volo;
non è una questione di lana caprina. Se sei uno sviluppatore, non ti puoi sempre ingrippare su ste s#@*ate.

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

Re: operatori logici (= || ==)?

Messaggio da gameplay_extreme »

purtroppo neanche := che è univocamente assegnazione non funziona...strano
cioè, come sintassi è accettato ma praticamente nel caso descritto da te diventa sinonimo di ==

boh...prova lo stesso...magari hai una versione più nuova di me...
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
boxbuilder
Membro
Messaggi: 158
Iscritto il: 25/06/2015, 10:37
Specialità: programmatore
Uso: GM:Studio 1.4 HTML5
Contatta:

Re: operatori logici (= || ==)?

Messaggio da boxbuilder »

gameplay_extreme ha scritto: boh...prova lo stesso...magari hai una versione più nuova di me...
no, non funziona neanche sulla 1.99.505.

bisognerebbe provare con studio 2, ma non l'ho mai scaricato.

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 155 ospiti