Bueno, había puesto otra duda en el anterior post pero como no tiene nada que ver y puede que esta se extienda mas he decidido abrir un post para preguntar mas concretamente..
Veamos, lo que necesito saber es si puedo acceder (imagino que si) a información de las instancias que hay en pantalla de un objeto. Por ejemplo necesito saber sobre que instancias has hecho click y las has seleccionado para poder trabajar con ellas y poder sumarlas entre si, o eliminarlas, etc...
Un saludo y gracias!
Para eso tenes que obtener la id de la instancia.
Hay varias funciones que devuelven el id (busca en el manual instance_ ).
Lo mejor es guardar ese valor en una variable, array, lista, etc, por ejemplo objeto=instance_position(mouse_x,mouse_y, enemigo), esto guarda en la variable objeto, la id de un objeto enemigo.
Si por ejemplo queres saber dibujar en pantalla la velocidad(speed) de esa instancia draw_text(10,10, objeto.speed)
Cita de: 3dgeminis en Junio 18, 2017, 07:50:28 PM
Para eso tenes que obtener la id de la instancia.
Hay varias funciones que devuelven el id (busca en el manual instance_ ).
Lo mejor es guardar ese valor en una variable, array, lista, etc, por ejemplo objeto=instance_position(mouse_x,mouse_y, enemigo), esto guarda en la variable objeto, la id de un objeto enemigo.
Si por ejemplo queres saber dibujar en pantalla la velocidad(speed) de esa instancia draw_text(10,10, objeto.speed)
Entiendo mas o menos como hacerlo pero no sé si se aplica a lo que quiero.
Yo tengo 15 instancias del mismo objeto y quiero saber cuales tienen la variable intSelected en "true". ¿Como haría algo así?
y si las emparentas en un objeto, y el código lo llame a ese parent
if obj_parent.variable == true {bla bla}
Cita de: kostra en Junio 18, 2017, 09:00:46 PM
y si las emparentas en un objeto, y el código lo llame a ese parent
if obj_parent.variable == true {bla bla}
No he entendido esto xD
-creas un objeto sin sprite llamado obj_parentmuros (porque trata de eso de tu otro post no? de muros no? xd)
-en el código donde tienes que verificar cada una de las instancias, pones:
[gml]if obj_parentmuros.variable == true
{
//lo que hace
}[/gml]
variable pues esa que quieres verificar :B
Cita de: kostra en Junio 18, 2017, 09:30:00 PM
-creas un objeto sin sprite llamado obj_parentmuros (porque trata de eso de tu otro post no? de muros no? xd)
-en el código donde tienes que verificar cada una de las instancias, pones:
[gml]if obj_parentmuros.variable == true
{
//lo que hace
}[/gml]
variable pues esa que quieres verificar :B
No.. no es mio el otro post xD
independientemente de sea tuyo o no el post ese, eso es lo que pides, o lo que entendí que pides xD
Cita de: kostra en Junio 18, 2017, 10:13:22 PM
independientemente de sea tuyo o no el post ese, eso es lo que pides, o lo que entendí que pides xD
Pero la variable ya está dentro de un objeto, yo quiero verificar si esa variable está en true y después destruir las instancias que tengan esa variable en true.
:S !!!
pues en el mismo objeto pones una variable y la verificas, si se aplica en todas las instancias es porque estarás nombrando el objeto al verificar la variable :S
-create:
variable = false;
-step:
if variable {lo que pasa al estar en true}
cualquier lectura de cualquier instancia en la room, que haga una lectura de su step, afectará a ningúna otra instancia más que a sí misma.
Creo que el problema se puede resolver con la palabra with (en un objeto controlador)
Para sumar valores asignados a las instancias de "obj_x"
[gml]
global.suma = 0;
with( obj_x ){ //revisar todas las instancias de obj_x
if( intSelected == true ) //si esta seleccionado
global.suma += valor; //agregar valor a global.suma
}
[/gml]
Para destruir las instancias selecccionadas
[gml]
with( obj_x ){ //revisar todas las instancias de obj_x
if( intSelected == true ) //si esta seleccionado
instance_destroy(); //destruir
}
[/gml]