Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: miguel1998 en Mayo 22, 2020, 04:20:14 PM

Título: detectar si un objeto esta fuera de la cámara (solucionado)
Publicado por: miguel1998 en Mayo 22, 2020, 04:20:14 PM
Hola a todos, quiero que el juego detecte cuando una un instancia esta fuera de la cámara
se hace con alguna función dentro de GM o es un método mas complejo?
Título: Re:detectar si un objeto esta fuera de la cámara
Publicado por: T789 en Mayo 22, 2020, 10:17:23 PM
Nada de complejidades (bueno admenos para mi)

Puedes probar utilizando el siguiente codigo en el objeto que quieras:
[gml]
/// Event Create
OutView = false;

/// Event Step
// Si se sale de la view horizontalmente
if ((x > view_xview+640) or (x < view_xview))
  OutView = true;
  else
  OutView = false;

// Si se sale Verticalmente
if ((y < view_yview) or (y > view_yview+480))
  OutView = true;
  else
  OutView = false;
[/gml]

Ese es un metodo totalmente simple para verificar si se sale por algun lado de la vista, aunque tambien puedes verificarlo usando uno de los Event Other
Título: Re:detectar si un objeto esta fuera de la cámara
Publicado por: miguel1998 en Mayo 22, 2020, 10:44:03 PM
Gracias por tu respuesta sin duda la voy a aprovechar, pero en el código hay algo que me genera duda.
Si la instancia se sale horizontalmente la variable outView se establecería en true pero al no salirse verticalmente se establecería en false, ¿no causaría un conflicto en el programa al no saber si establecer la variable en verdadera o falsa?
Título: Re:detectar si un objeto esta fuera de la cámara
Publicado por: kostra en Mayo 22, 2020, 10:50:04 PM
[gml]
///is_out()

var OutView;

if x < view_xview[0]
|| x >= view_xview[0]+view_wview[0]
|| y < view_yview[0]
|| y >= view_yview[0]+view_hview[0]
    OutView = true;
else OutView = false;

return OutView;
[/gml]

modo de uso:
[gml]
if is_out() {
    show_debug_message("esta fuera de camara");
    }
else {
    show_debug_message("esta dentro de camara");
    }
[/gml]

no hay conflicto que valga xd

PD: esto lo pones en un SCRIPT nuevo con el nombre "is_out"
Título: Re:detectar si un objeto esta fuera de la cámara
Publicado por: miguel1998 en Mayo 23, 2020, 12:03:20 AM
Perfecto, me funciono gracias por tu ayuda