bueno pongo en el mouse crear objeto un cuadrado por ejemplo y creo dos objetos iguales al grabar las posiciones solo m graba la posicion del segundo objeto el ultimo creado Como identifico copias del objeto y sus coordenadas x y ?
lo que yo haría sería guardar las id de cada instancia en alguna estructura de datos, en este caso en una pila
CREATE :
ids_pila = ds_stack_create();
CUANDO QUIERA GUARDAR el id de las instancias (STEP probablemente)
with (obj_mi_objeto)
{
ds_stack_push(ids_pila, id);
}
no lo comprendo como ace esto que obj_mio xy
se distinge de mio copia x,y podrias hacer un ejemplo ademas me da error la variable ids_pil aunque se que los tiros van por ahi por la id
El detalle es que no tengo el Studio, por eso no puedo hacerte ejemplo
Digamos que tienes un objeto obj_bala y que en determinado momento de tu juego, hay 10 instancias de este objeto en la habitación. Esas 10 instancias o copias, como tú les llamas, tienen internamente un identificador único (id). Al usar la instrucción
with(obj_bala)
{
}
Lo que pongas entre corchetes se va a ejecutar para cada instancia de la bala, es decir, se va a ir recorriendo 10 veces por todas las "copias" del objeto ob_bala. En el ejemplo que puse en el mensaje anterior, GM "entraria" a la primer instancia de ob_bala y leería su identificador (id), lo almacenaría en la pila, luego accedería a la siguiente instancia, y leería un nuevo id, y así dependiendo del número de instancias.
Luego, como estás usando una pila, los datos que le metas (guardes) se van apilando "uno encima de otro" (hablando en sentido figurado).
ultimo_dato = ds_stack_pop(ids_pila)
Al hacer eso, obtienes el identificador de la ultima instancia que se guardói en la pila Y OJO, este valor se borra de la pila (el tamaño de la pila disminuye en 1, es decir, ahora te quedan 9 valores). Luego puedes hacer
ultimo_dato.x += 5, por ejemplo, para mover esa "copia" en particular.
Espero que se entienda algo :-[
EDITADO:
A lo mejor se te hace más fácil usar un arreglo para guardar las id's. algo como
[CREATE]
contador = 0; arreglo_id(10) = 0
with(obj_mio)
{
arreglo_id[contador] = id
contador +=1
}
muchas gracias por contestar algo entiendo pero tengo que estudiar y comprobar vera en studio para grabar las posiciones de un objeto se hace asi:
ini_open( 'savedata.ini' );
if (instance_number(dest)>0){
ini_write_real('SAVE','xx', dest.x)
ini_write_real('SAVE','yy', dest.y) }
ini_close()
por eso necesito identificar copias para conocer su x y y salvarlas
ini_write_real('SAVE','xx1', copiadest.x)
ini_write_real('SAVE','yy1', copiadest.y) }
algo asi creo q with puede valer todo es experimentar solo q en vez de copia pondia 1 2 3