Noticias

¡Ayuda a la Comunidad GM, haz una donación!

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: [RESUELTO] Problema con enumerador  (Leído 818 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Fashion_Trozos

  • Habitual
  • *
  • Puntos: 141
  • Mensajes: 72
    • Ver Perfil
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.

Código: [Seleccionar]
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!
« última modificación: Mayo 28, 2019, 12:59:13 pm por Fashion_Trozos »

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado NiuWeb

  • Flota de Justicia Particular.
  • Moderadores globales
  • Okupa
  • *
  • Puntos: 2825
  • Mensajes: 1.697
  • Agradecido: 141 veces
  • Sexo: Masculino
  • Rock anthem for saving the world.
    • Ver Perfil
Respuesta #1 en: Mayo 27, 2019, 08:06:32 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.

Código: [Seleccionar]
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.

El tiempo era tu aliado, humano, pero te ha abandonado.
Los Forerunners han regresado, esta tumba ahora es tuya.

-Ur-Didacta.


BA:STFW&RTFM
 


Desconectado FridaFlowers

Respuesta #2 en: Mayo 27, 2019, 08:17:37 pm
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:

enum FUNC{
    saludar = scr_hola,
}

hablar = FUNC.saludar;

script_execute(hablar)

Aunque no se porqué querrías complicarte tanto el código  XD

 
Los siguientes usuarios dieron las gracias a este tema: NiuWeb, Fashion_Trozos


Desconectado somnus

Respuesta #3 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.

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
 


Desconectado FridaFlowers

Respuesta #4 en: Mayo 28, 2019, 12:50:51 am
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.


 


Desconectado Fashion_Trozos

  • Habitual
  • *
  • Puntos: 141
  • Mensajes: 72
    • Ver Perfil
Respuesta #5 en: Mayo 28, 2019, 01:01:22 pm
Frida Flowers me funcionado así como has comentado, simplemente quitando los paréntesis. Muchas  gracias y a los demás por contestar!