Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: BssString en Octubre 13, 2018, 04:50:31 am

Título: [Solucionado] DS GRID - Almacenar más de un valor en una celda
Publicado por: BssString en Octubre 13, 2018, 04:50:31 am
Estimados

Mi duda está enfocada en la eficiencia, porque la verdad es que es algo que sí pude hacer...
Quiero almacenar varios valores (un número entre 0 a 4000) en una celda de una DS Grid (quizás 3 o 4 valores en la misma celda).
Ej: que la celda x,y contenga estos 3 valores al mismo tiempo: 300 1 3850

He probado algunas cosas, pero no me convencen mis métodos y quiero saber si alguien lo ha hecho alguna vez de forma eficiente.

Hasta ahora probé 3 cosas:

1- Crear 3 DS Grid diferentes, es el peor método porque es el menos eficiente y en el que más lento se trae la info.

2- Almacenar carácteres binarios, el problema es que sólo acepta un rango de 0 a 255 y quiero almacenar valores de 0 a 4000. Almacenando 2 binarios juntos (y después hacer un cálculo) me causaba errores y bugs raros, sobre todo cuando intentaba leer el cero.

3- Guardar los números como texto, separados por un delimitador. Hasta el momento es el mejor método que he encontrado, es el más eficiente y el que hace más rápido la lectura/escritura de la info para el juego.
El problema es que el código se ve horrible y muchas veces me confundo cuando quiero leer / escribir data en la grid.

Alguna idea?
Título: Re:DS GRID - Almacenar más de un valor en una celda
Publicado por: Parzival en Octubre 13, 2018, 03:04:09 pm
La verdad no utilizo GM desde hace muchísimos años pero lo que se suele hacer en ese caso en lenguajes de programación como C++ o Java, sería almacenar un array.

Cada elemento de la grilla no es un valor, sino un array.

Teoricamente sería algo como:

Citar
var vec[];
vec[0] = 300;
vec[1] = 1;
vec[2] = 3850;


ds_grid(grilla, 0, 0, vec);

Desconozco si esto es posible, pero podrías intentarlo.
Título: Re:DS GRID - Almacenar más de un valor en una celda
Publicado por: 3dgeminis en Octubre 13, 2018, 07:50:47 pm
Me hiria por la opcion 3
https://marketplace.yoyogames.com/assets/4069/simple-string_split-script (https://marketplace.yoyogames.com/assets/4069/simple-string_split-script)
https://yal.cc/gamemaker-split-string/ (https://yal.cc/gamemaker-split-string/)
https://www.reddit.com/r/gamemaker/comments/3zxota/splitting_strings/ (https://www.reddit.com/r/gamemaker/comments/3zxota/splitting_strings/)
Título: Re:DS GRID - Almacenar más de un valor en una celda
Publicado por: BssString en Octubre 14, 2018, 06:52:00 pm
Estimados

Probé asignando arrays y me ha funcionado, al menos mientras lo testeaba.
Asigné el mismo array vacío a todas las celdas de la grid y luego podía editar cada array de forma individual.

Más adelante voy a implementarlo en el juego real para ver si afecta o no al rendimiento del juego.

Si falla el rendimiento, lo haré con strings y listo...

Gracias por sus respuestas  ;)

Saludos