Octubre 13, 2018, 04:50:31 AM Ultima modificación: Octubre 15, 2018, 10:36:39 PM por BssString
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?

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:

Citarvar 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.


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