Buenashffjfdkfj!! xD
Me surge esa duda principalmente porque en ocaciones necesito almacenar más de un valor en una llave de una ds_map(), y obviamente la mejor forma de hacerlo es con un array, una ds_list() u otra ds_map().

La pregunta es, si yo tengo un array dentro de una estructura de datos (digámosle ds_map()), con una estructura algo como esto:


Había pensado en intentar como un array bidimensional, algo así:
[gml]
mapa[? 'llave1', 0]
[/gml]
Pero me sale error de compilación:


¿Cómo podría obtener la información que se encuentra en el Array de cada llave del mapa sin tener que almacenar la misma en otra variable?

Gracias de antecabeza :B
alaberga regué el café.

BA:STFW&RTFM

no te entendi muy bien, pero porque no haces un objeto llave?
- que tenga todo lo necesario y metes en la lista diferentes llaves


ob_llave
-----------
Ev.Create

valor = 1001;
label = "llave nivel 1";



y en otro obeto manager, simplemente creas la lista , haces la istancia de las llaves que ocupas y las almacenas en dicha lsta:

ob_ManejadorLLave
--------------------------------

//creas la lista

llave1 = instance_create(0,0, obLlave);
llave2 = instance_create(0,0, obLlave);
llave3 = instance_create(0,0, obLlave);


llave1.value = 100;
llave2.value = 200;
llave3.value = 300;


//guardas estos objetos en la lista


espero haberme explicado bien






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

¿Y por qué usar un objeto llave cuando tendo ds_map()?  XD
Verás, no puedo ir creando objetos por cada lista que necesite. Para ello están los ds_map(), que me permiten trabajar de la forma en que lo deseo.

Además, ¿Que tiene que ver lo que mostraste con los arrays?  XD , parece que en realidad no se entendió mi pregunta :-X xD

1)- Tengo una ds_map() creada
2)- En una llave de esa ds_map() tengo guardado un array
3)- Necesito obtener el valor de un índice del array guardado en esa llave de la ds_map()

Eso es, espero haberme explicao mejor xD
alaberga regué el café.

BA:STFW&RTFM

#3 Febrero 22, 2016, 12:40:52 AM Ultima modificación: Febrero 22, 2016, 12:48:33 AM por FridaFlowers
Se me ocurre que tienes que obtener primero el arreglo para luego recien hacer referencia al elemento dentro de dicho arreglo, por ejemplo:

var array = arr = ds_map_find_value(mapa1, 2);

draw_text(0,0, arr[1]);


basandome anteriormente de que el mapa está formado de la siguiente manera:

mapa1 = ds_map_create();

array1[0] = "primero";
array1[1] = "segundo";
array1[2] = "tercero";

array2[0] = "cuarto";
array2[1] = "quinto";
array2[2] = "sexto";

ds_map_add(mapa1, 1, array1);
ds_map_add(mapa1, 2, array2);


edit: probando, conseguí, que es lo mismo usar:

var arr = mapa1[? 2];
var val = arr[@ 1];

draw_text(0,0, val);


Eso es lo que quiero hacer, pero a su vez es exactamente lo que quiero evitar XD
Cito lo que dije en mi mensaje original:

Cita de: NiuWeb en Febrero 21, 2016, 10:47:16 PM
¿Cómo podría obtener la información que se encuentra en el Array de cada llave del mapa sin tener que almacenar la misma en otra variable?
alaberga regué el café.

BA:STFW&RTFM

Ah, si te refieres a hacerlo con algun tipo de notacion... al menos yo, no he visto nada parecido en el manual.

No. No existe una forma directa de hacerlo. De todos modos, no es algo malo el tener que almacenarlo en otra variable.
De todos modos, no es algo que vaya a perjudicar la performance del juego, ya que no estas copiando el array entero, solo estás obteniendo un puntero/referencia del array en cuestion. :)
Cita de: CGM 2008CGM: Un poco mas serios, mejores Juegos.
Bienvenid@ a CGM. Recomenzamos desde cero, con un reglamento mas estricto, mejor definido y con mas ganas que nunca de hacer juegos con calidad comercial. El que avisa no es traidor: Leete las reglas si no quieres llevarte un capon makero.
Mercilessly!!
Plug-In para animaciones: http://ciberman.net/tweenline/