Buenas,

tengo un objeto que cuando haces click (evento left pressed) se pone otro objeto encima con un mensaje. Una parte de su sprite es transparente, y veo que si le hace click a este objeto también hace el objeto que tiene detrás.

¿Como puedo evitar esto?


David

P.D: adjunto ejemplo, lo pongo como importación de recursos porque tengo versión 8.1 y sería incompatible con versiones anteriores.

verificas las depth de cada object al momento en que se presiona el click y compara las dos depth asi solo debe afectar al de mayor depth.
ejemplo.
event cerate
dp=; //guardara si es el de mayor o menor profundidad
clickact=false; //indica si le afecta o no el click
Event de colision con el object que esta en cima.
dp=other.depth; //tomo la depth del otro object y la guardo en la var dp
if dp < depth //osea si la produndidad de la instancia con la que coliciona es mayor es por que esta debajo
{clickact=true;}//se activa el uso del click sobre el.

ahora seguro usas el event de mouse click left... Bueno..
antes de todas las acciones colocas
if clickact=true
{
y aqui el codig normal...
}

Vaya, pensaba que solo con el depth sería suficiente.... :'(


De la manera que me has comentado si que queda solucionado, aunque no me gusta tener que controlarlo en todos los objetos....

Muchas gracias!

#3 Octubre 16, 2012, 05:27:20 AM Ultima modificación: Octubre 16, 2012, 05:29:32 AM por MONT
Tengo otras alternativas mas sencillas que no hacen exactamente lo que quieres pero te pueden ser igual de utiles. Llamaré A al objeto que hace poner al otro encima y llamaré B al de encima que trae el mensaje.

1.-Si B nunca será mas de 1, Haz que A genere un B solo si la cantidad de B es igual a cero. Ocupa instance_count .
2.-Si B siempre queda sobre A, Haz que A genere un B solo si no estan colisionando.
3.-Crea una variable global.creador y ponle el id de la instancia (A o B) que quieres que reaccione al hacerle click, haz que A o B hagan "lo que deben hacer" con el click solo si su self.id es igual a global.creador; así garantizas que sólo sea 1 quien reaccione. (Cuando B es creado es el momento para darle su id a global.creador).

Mis opciones están algo resumidas, las dejo por si te resultan interesantes y aplicables; si necesitas mas detalle sobre alguna pues lo daré.
Saludos  ;D