Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: detectar si un objeto esta fuera de la cámara (solucionado)  (Leído 86 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado miguel1998

  • Habitual
  • *
  • Puntos: 20
  • Mensajes: 10
    • Ver Perfil
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?
« última modificación: Mayo 23, 2020, 12:04:21 am por miguel1998 »

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado T789

  • Asiduo
  • *
  • Puntos: 210
  • Mensajes: 122
  • Agradecido: 7 veces
  • Sexo: Masculino
  • Solo quiero aprender para ser Mejor
    • Ver Perfil
Respuesta #1 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:
/// 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;

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

 


Desconectado miguel1998

  • Habitual
  • *
  • Puntos: 20
  • Mensajes: 10
    • Ver Perfil
Respuesta #2 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?

 


Desconectado kostra

  • Legendario
  • *
  • Puntos: 2524
  • Mensajes: 2.076
  • Agradecido: 105 veces
  • Sexo: Femenino
  • Sé literalmente el sentido de la vida.
    • Ver Perfil
Respuesta #3 en: Mayo 22, 2020, 10:50:04 pm
///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;

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

no hay conflicto que valga xd

PD: esto lo pones en un SCRIPT nuevo con el nombre "is_out"

"ola k ase clickarme o k ase"
la imagen no se quita xD
 


Desconectado miguel1998

  • Habitual
  • *
  • Puntos: 20
  • Mensajes: 10
    • Ver Perfil
Respuesta #4 en: Mayo 23, 2020, 12:03:20 am
Perfecto, me funciono gracias por tu ayuda