Problema con enum!

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Rispondi
Tungsteno
Newbie
Messaggi: 3
Iscritto il: 30/08/2016, 14:58
Specialità: Grafica - Sfx
Uso: GM:Studio 2
Contatta:

Problema con enum!

Messaggio da Tungsteno »

Salve a tutti, dopo mesi dalla mia iscrizione decido di chiedere qualcosa a questa comunità.
Sto creando un gioco usando una "state machine" che, tramite enum(s)e switch(es), mi permetta di tenere sotto controllo più cose con ordine. (sarà la 4^ volta che riscrivo il codice da zero, ogni volta imparo qualcosa che mi fa smontare tutto il precendente :asd:)

Ad ogni modo non riesco a dichiarare un secondo enum nel mio gioco, perché vedo che le varie constanti non vengono proprio create.

Codice: Seleziona tutto

enum moving
{
    right,
    down, 
    left, 
    up, 
    no
}

enum positions 
{
    standing,
    crouching,
    prone
}
Il primo enum funziona perfettamente e sono riuscito ad integrarlo per il movimento del giocatore (privo di diagonali)...ma il secondo non vuole proprio saperne di venire al mondo... cosa sto sbagliando?
Ringrazio a tutti in anticipo!

Ps.
Questo è il messaggio di errore che conferma quanto detto (credo :asd: ):
In Object obj_player, in Event StepNormalEvent action number 1 at line 13 : Case argument should be a constant
Ultima modifica di Tungsteno il 10/02/2018, 10:26, modificato 2 volte in totale.

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

Re: Problema con enum!

Messaggio da Jak »

La sintassi è corretta, dove hai messo quel codice? Ti consiglio di fare uno o più script dedicati alle enum.
So che le enum negli script possono dare problemi se vengono richiamati in giro, e danno errore se le metti altrove poichè devono essere calcolati come costanti.
Ricontrolla il codice che lo utilizza, so che è una cosa scontata ma siccome non l'hai postato non si sa mai che ci siano errori di battitura...
Prova a pulire la cache del compilatore (c'è un tasto apposito), è una cosa che da spesso problemi di questo tipo.
Ho anche controllato su un vecchio progetto che usava enum doppie come hai fatto tu e non mi ha mai dato problemi, ti assicuro che la sintassi è perfetta. Può anche darsi che sia un bug recente.
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

Tungsteno
Newbie
Messaggi: 3
Iscritto il: 30/08/2016, 14:58
Specialità: Grafica - Sfx
Uso: GM:Studio 2
Contatta:

Re: Problema con enum!

Messaggio da Tungsteno »

Ciao Jak, ti ringrazio per avermi risposto!
Ad ogni modo ho appena ri-aperto il progetto e ho riscritto il secondo enumeratore "da zero" (4 righe, che saranno mai) e con mia sorpresa GM:S ha appreso le costanti! Non so proprio cosa sia successo dato la struttura è uguale a quella di prima. :hum:
Che sia utile ai prossimi!

EDIT:
Domandina, come faccio a farmi restituire il nome della costante e non il suo valore con un draw?

Codice: Seleziona tutto

draw_text(50, 75, "Position: "+string(position))
Mi restituisce (giustamente) "Position: [n]" ma se volessi vedere "position: position.xxxxxx" ?

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 166 ospiti