gestire gli errori

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Rispondi
Avatar utente
gameplay_extreme
GMI VIP
Messaggi: 3824
Iscritto il: 13/11/2010, 16:23
Uso: GM:Studio 2
Contatta:

gestire gli errori

Messaggio da gameplay_extreme »

sono momentaneamente su GM 8.0, quello dove ancora string_execute esisteva...

mi serve che un comando inserito dall' utente sia ripetuto infinite volte...ma in questo modo se l'utente sbaglia a scrivere ci saranno infinite finestre d'errore fino a che non fai "abort"...non è possibile che, in caso ci sia uno di questi errori, venga eseguito un' inizalizzazione così:

Codice: Seleziona tutto

stringa_comando = "" //elimino il comando errato
di modo che l'utente possa riprovare senza dover riavviare ?
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
cp94
Moderatore
Messaggi: 2789
Iscritto il: 04/07/2009, 19:18
Specialità: ddd
Località: Brescia
Contatta:

Re: gestire gli errori

Messaggio da cp94 »

Siccome su GM8 non esistono i blocchi try .. catch potresti fare una cosa di questo tipo:
Potresti settare una variabile var = true; nel create e risettarla a true anche prima di execute_string, dopodichè attaccare alla fine del codice inserito dall utente un var = false;
Dopo l'execute string controlli se var == true, in tal caso il codice inserito avrà un errore e farai terminare l'esecuzione.

Ho appena testato e funziona.

Codice: Seleziona tutto

a = true;

Codice: Seleziona tutto

a = true;

execute_string("sprite_add('test');  a = false; "); // c'è un errore qua dentro

if (a == true)
    game_end();
Games you should check out
Naemo
E T U S
Overgravity
Inside the Code

Immagine

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

Re: gestire gli errori

Messaggio da gameplay_extreme »

Grazie mille
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)

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: gestire gli errori

Messaggio da Jak »

Se non ricordo male cè un'impostazione per rimuovere completamente i messaggi di errore, un'altra è l'inizializzazione automatica delle variabili a 0 quando vengono utilizzate. Il problema è ovviamente che non puoi capire se cè un problema o meno.
Un'altra idea è quella di impostare un watchdog tra un ciclo e l'altro che ferma l'esecuzione dello script se questo allo step precedente ha impiegato troppo tempo. Ciclo di almeno un paio di sec = messaggio d'errore apparso, non puoi averne la certezza in caso di codici pesanti ma dovrebbe andare. Potresti anche permettere all'utente di impostare il tempo del watchdog.
Ovviamente non risolve il problema in caso di cicli interni al codice che ripeteranno l'errore a oltranza.
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

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 110 ospiti