Estructuras de datos

Esta función sólo está disponible en la versión registrada de Game Maker.

En los juegos normalmente necesitas guardar información. Por ejemplo, necesitas guardar listas de ítems que lleva un personaje o nombres de lugares que necesita visitar. Puedes usar arrays para esto. Pero si necesitas hacer operaciones más complicadas, como ordenar los datos o buscar un ítem determinado, necesitas escribir grandes trozos de código en GML, que pueden ser lentos al ejecutarse.

Para remediar esto, Game Maker dispone de  un número de funciones de estructuras de datos. Hasta el momento hay 6 tipos de estructuras de datos diferentes: stacks (pilas), queues (colas), lists (listas), maps (mapas), priority queues (colas de prioridad) y grids (rejillas). Cada uno de estos tipos está preparado para un uso particular.

Todas las estructuras de datos funcionan generalmente de la misma manera. Creas una estructura de datos con una función que devuelve la id de esa estructura y luego usas esa id para hacer diferentes operaciones. Cuando has terminado, puedes destruir la estructura para ahorrar espacio. Puedes usar tantas estructuras a la vez como desees y éstas pueden guardar valores reales o cadenas de texto.

Observa que las estructuras de datos no se guardan cuando guardas el juego usando las funciones o acciones apropiadas. Para guardarlas, deberás crear tu propio sistema.

Al comparar valores, por ejemplo al ordenar una lista, Game Maker debe decidir cuándo dos valores son iguales. Al usar cadenas de texto y valores enteros esto es evidente, pero para valores reales, debido a errores de redondeo, números iguales pueden convertirse en diferentes. Por ejemplo, (5/3)*3 no será igual a 5. Para evitar esto, puedes especificar la precisión que deseas usar. Cuando la diferencia entre dos números es menor que esta precisión, los dos números se consideran iguales. Por defecto se utiliza una precisión de 0.0000001.Puedes cambiar este valor con las funciones siguientes:

ds_set_precision(prec) Especifica la precisión usada en comparaciones.

Esta precisión se utiliza en las estructuras de datos pero no en el resto de comparaciones en GML!

Las estructuras de datos disponibles son las siguientes:

    Pilas

    Colas

    Listas

    Mapas

    Colas de prioridad

    Rejillas