Hola, en mi aprendizaje de la sintaxis de GM me he encontrado con otro problema:

Resulta que pretendo hacer un vector (vectorCajas) de instancias de objetos (obj_caja) y quiero darle a cada objeto del vector una propiedad "tipoCaja" y he hecho el código tal que así:



// Creo un vector con los tipos de caja que puedo tener
{
tipo[0]="grande"
tipo[1]="mediana"
tipo[2]="pequeña"
}

//Creo hasta 3 obj_caja y los guardo en el vectorCajas[i]
for (i = 0; i < 3; i += 1)
{
vectorCajas[i] = instance_create(x + (i*50),y,obj_caja);
//Aquí es donde pretendo darle un tipo a cada caja
vectorCajas[i].tipoCaja = tipo[i];
//Aquí pretendo mostrar el resultado en un show_message()
show_message(string(vectorCajas[i].tipoCaja);
}


Pero el caso es que el show_message() me peta y no estoy seguro de estar guardando bien los tipos de caja en cada objeto del vector :/ ¿Es un problema de hacer mal el show_message() o es que no estoy guardando bien los tipos? ¿Hay alguna otra forma de comprobarlo?

¡Muchas gracias!

Arg!, Me está volviendo loco el tema, dicho de otro modo más sencillo:

¿Cómo pongo dinámicamente, 3 instancias de objeto en pantalla y que cada una tenga una propiedad "nombre" diferente?

¿De verdad que tengo que crear 3 objetos diferentes desde la interficie o es que no tengo ni pajolera de cómo hacerlo des de código?

Gracias de antemano por cualquier ayuda.

Pues lo único que tiene mal el código es que al show message le hace falta un parentecis.

Cita de: clloses en Junio 06, 2013, 06:27:27 PM
¿Cómo pongo dinámicamente, 3 instancias de objeto en pantalla y que cada una tenga una propiedad "nombre" diferente?
Tal como lo estás haciendo usando un "." para acceder a las variables locales de una instancia en especifico.

También puedes usar la construcción "with". Se usa de esté modo.
[gml]with(vectorCajas){
     Nombre="juan";
     Tipo=wololo;
}[/gml]

Si usas el with con el nombre de un objeto y no con una instancia en especifico se hará un loop entre todas las instancias del objeto pasado. Ejemplo.
[gml]with( obj_caja ){
     Nombre="juan";
     //¡Todas las instancias de obj_caja nos llamamos juan!
     Tipo=wololo;
}[/gml]

Arg, muchas gracias brunoxzx. La verdad es que al final desesperé y acabé creando 3 objetos (caja1, caja2, caja3) en la libreria y los metí en la room con room_instance_add(nombre_room, posx, posy, object_get_index(obj)).

Pero como sigue pareciéndome más limipio hacer 3 instancias de un mismo objeto, probaré lo que me recomiendas a ver si tengo éxito.

Ahora mismo el problema lo tengo en no detectar bien a qué caja le estoy haciendo un drop de otro objeto con el ratón.

Empiezo a pensar que aun no he entendido bien en qué eventos (y de qué objetos) tengo que añadir mis Execution_code :P

¡Gracias por la ayuda igualmente!