Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Munguia en Enero 06, 2011, 02:10:23 AM

Título: intercambio de lugar
Publicado por: Munguia en Enero 06, 2011, 02:10:23 AM
tengo 10 objetos, quiero que cuando inicie el room estos intercambien de lugar entre ellos, que debo hacer, para que cada vez est?n en un lugar diferente
como para un juego de cartas memoria :D
Título: Re: intercambio de lugar
Publicado por: Hackware en Enero 06, 2011, 06:30:57 AM
Se me ocurre este c?digo:

[gml]var ic, xx, yy;
with (carta) //carta siendo el nombre del objeto
{
ic=instance_find(carta,floor(random(instance_number(carta)))); //carta de intercambio
xx=x; yy=y;
x=ic.x; y=ic.y;
ic.x=xx; ic.y=yy;
}[/gml]

Debe usarse una sola vez en cada partida, por ejemplo en el evento Game Start o Rooms Start de cualquier objeto, pero no en el evento Create de las cartas porque se repetir?a innecesariamente.
Título: Re: intercambio de lugar
Publicado por: Munguia en Enero 07, 2011, 09:21:22 PM
Muchas gracias Hackware, voy a probarlo y ah? te cuento como me fue
tuanis!
Título: Re: intercambio de lugar
Publicado por: Munguia en Enero 09, 2011, 02:46:54 AM
colega Hackware, no me sale, de hecho lo pongo y no pasa nada

entre parentesis pon?s cartas, pero son el mismo objeto?

cada carta es diferente con nombre diferente, pero en global se llaman
global_redcard o global_bluecard,

pura vida
Título: Re: intercambio de lugar
Publicado por: Hackware en Enero 09, 2011, 07:05:17 AM
A?ade un objeto sin eventos ni acciones, luego def?nelo como Parent de cada objeto_carta que deba intercambiar posiciones, por ?ltimo utiliza el mismo c?digo anterior, pero utiliza el nombre del objeto reci?n creado como argumento. D?jame y te muestro:

[gml]var ic, xx, yy;
with (parentcard) //parentcard siendo el nombre del objeto reci?n creado y vinculado a las dem?s cartas
{
ic=instance_find(carta,floor(random(instance_number(carta)))); //ic=carta de intercambio
xx=x; yy=y;
x=ic.x; y=ic.y;
ic.x=xx; ic.y=yy;
}[/gml]