Hola a todos, vereis estoy haciendo un juego en el que los enemigos aparecen aleatoriamente fuera de la room a la derecha y se mueven a la izquierda para ir apareciendo en la misma.

Como coordenada "y" tengo random(room_height) el problema es que con algunos sprites algo grandes una parte de ellos se ven fuera de la room cuando aparecen muy arriba o muy abajo.

Los sprites los tengo con mascara precisa, me  gustaria saber como hacer para que cuando el juego detecte que cualquier parte de la mascara esta fuera de la room (solo con la coordenada y) el objeto no aparezca o aparezca en otro sitio.

Un saludo a todos

en el evento intersect boundary del objeto, incluye un instance_destroy().

lo he probado pero no funciona  :-\
me siguen saliendo parte de los objetos fuera de la room y además el evento este destruye los objetos fuera de toda room y yo solo quiero que me los destruya si salen por la parte de arriba o por la de abajo.

¿Alguna otra idea? :(

Cita de: elmenda3 en Diciembre 23, 2014, 03:55:40 AM
¿Alguna otra idea? :(
¿Consultar el manual? Más específicamente, las variables sprite_height y sprite_yoffset.

random(room_height) no va a funcionar porque no toma en cuenta el tamaño (vertical) del sprite. Pero usando una de las dos variables anteriores (dependiendo de cómo tengas configurado el origen de los sprites en GM), se puede por ejemplo hacer que a room_height se le reste el tamaño del sprite y así asegurar que el sprite aparezca siempre completo.

RESUELTO!!!!

Al final lo he hecho mediante random(room_height-sprite_get_height(obj_enemigo))+sprite_get_height(obj_enemigo)/2

gracias a todos