Mayo 27, 2019, 08:01:43 PM Ultima modificación: Mayo 28, 2019, 12:59:13 PM por Fashion_Trozos
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.
alaberga regué el café.

BA:STFW&RTFM

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.
Es Mejor No Saber Porque Funciona, Que Saber El Porque No Funciona...
Tienes alguna duda con "Game Design" o de videojuegos en general, contactamente mas facil en twitter @pavulzavala

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!