Hola, buenas a todo el mundo. Tengo un problema, quiero usar un enumerador porque estoy siguiendo (otra vez) un tutorial de como hacer una maquina de estados. Me da error en el evento Create.
enum ep{
parado = scr_parado(),
caminando = scr_prota_moviendose()
}
dir = "abajo";
estado = ep.parado;
El error que me da es "error game maker enum assignment must be an integer". No estoy utilizando bien el enumerador? un saludo!
Cita de: Fashion_Trozos en Mayo 27, 2019, 08:01:43 PM
Hola, buenas a todo el mundo. Tengo un problema, quiero usar un enumerador porque estoy siguiendo (otra vez) un tutorial de como hacer una maquina de estados. Me da error en el evento Create.
enum ep{
parado = scr_parado(),
caminando = scr_prota_moviendose()
}
dir = "abajo";
estado = ep.parado;
El error que me da es "error game maker enum assignment must be an integer". No estoy utilizando bien el enumerador? un saludo!
En el error está la misma respuesta: en los enumeradores debes poner específicamente (LITERALMENTE) números enteros.
De hecho, es posible. Solo que no debe llevar parentesis puesto que, si los tiene se entiende como una llamada a método.
Sin los parentesis contendría la ID de la funcion dentro de, supongo, la tabla o el stack:
[GML]
enum FUNC{
saludar = scr_hola,
}
hablar = FUNC.saludar;
script_execute(hablar)
[/GML]
Aunque no se porqué querrías complicarte tanto el código XD
yo aconsejo que el enum se ponga en un script, donde tengas otras constantes, macros u otra configuracion para que tus estados no solamente sean para tu objeto si no que Tambien puedan server los mismos estados para otros objetos ya sea NPC, o enemigos, etc.
Cita de: somnus en Mayo 27, 2019, 11:08:14 PM
yo aconsejo que el enum se ponga en un script, donde tengas otras constantes, macros u otra configuracion para que tus estados no solamente sean para tu objeto si no que Tambien puedan server los mismos estados para otros objetos ya sea NPC, o enemigos, etc.
Pues las enums tienen global scope.
No importa si se declara dentro de un objeto, es accesible a nivel global.
Frida Flowers me funcionado así como has comentado, simplemente quitando los paréntesis. Muchas gracias y a los demás por contestar!