Sottrarre/aggiungere stringa a valore

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Rispondi
Avatar utente
Vallo92
GMI Advanced
Messaggi: 1508
Iscritto il: 15/07/2011, 20:26
Specialità: Grafico
Uso: GM:Studio 2
Contatta:

Sottrarre/aggiungere stringa a valore

Messaggio da Vallo92 »

Pensavo che era una banalità, invece non riesco a pensare a una soluzione.
Ho una stringa che contiene un numero preceduto da un simbolo + o - (es. "-4"). Vorrei aggiungere o sottrarre (in base al simbolo che precede il numero) tale valore della stringa al valore di una variabile var (es. var = 40;).

Qualche idea?
-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
SP Games
Membro
Messaggi: 241
Iscritto il: 27/06/2014, 11:21
Specialità: Programmer
Uso: GM:Studio 1.4 Pro
Contatta:

Re: Sottrarre/aggiungere stringa a valore

Messaggio da SP Games »

S = string_digits(stringa_con_il_tuo_numero);
N = real(S);

in questo modo ottieni il numero, qui ovviamente non c'è alcun controllo sulla sensatezza del numero stesso, se ad esempio tu scrivi -42sk3oi9 la funzione ti restiuitirà 4239.
Una volta ottenuto il numero fai un check sul primo carattere per determinare il segno e la conseguente operazione.
Come alternativa piu complicata ti costruisci un bel parser, trovi pseudocodice di parser matematici ovunque, ma se non ti servono operazioni complesse direi che basta string_digits ;)

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

Re: Sottrarre/aggiungere stringa a valore

Messaggio da Vallo92 »

Perfetto, tutto risolto! :D
-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
Vallo92
GMI Advanced
Messaggi: 1508
Iscritto il: 15/07/2011, 20:26
Specialità: Grafico
Uso: GM:Studio 2
Contatta:

Re: Sottrarre/aggiungere stringa a valore

Messaggio da Vallo92 »

Inserisco un nuovo messaggio qui anziché aprire uan nuova discussione visto che la mia nuova domanda rientra sempre nel campo delle stringhe.

Ho questa riga di codice:

Codice: Seleziona tutto

ds_list_add(tex, global.textP2+" : [c="+string(c_green)+"]+"+string(abs(global.P2cont)) + "[c="+string(c_white)+"]  >>  " +string(global.P2Life), "+"+string(global.P2cont), "P2");
Una volta salvata è possibile riprendere il primo valore della lista tex (quindi: "global.textP2+" : [c="+string(c_green)+"]+"+string(abs(global.P2cont)) + "[c="+string(c_white)+"] >> " +string(global.P2Life), "+"+string(global.P2cont)") e modificare l'ultimo valore cioè quello di "+string(global.P2cont)"?

Inoltre vorrei fare chiarezza su un mio dubbio:
Ci sono differenze tra i risultati di questi due codici?

Codice: Seleziona tutto

str = 10;
a = str;
b = string(str);
-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
Wolfrost
Membro super
Messaggi: 692
Iscritto il: 03/08/2014, 13:08
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Località: Una galassia lontana lontana...
Contatta:

Re: Sottrarre/aggiungere stringa a valore

Messaggio da Wolfrost »

Posso risponderti solo all'ultima domanda: eccome
a = str; significa che a assume valore 10, che è un valore int, mentre b = string(str); quindi assume valore "10" che è di tipo string.
Immagine

Immagine

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

Re: Sottrarre/aggiungere stringa a valore

Messaggio da Vallo92 »

Ok, grazie per la precisazione. Quindi probabilmente se evito di trasformare "global.P2Life" in una stringa al momento del salvataggio nella lista ho più libertà nel trovare il valore e modificarlo.... Per non ho ancora idee su come farlo! xD
-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

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 37 ospiti