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: ESCONDERSE TRAS LA CAJA Y NO SER VISTO  (Leído 469 veces)

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

Desconectado nonoroman

en: Junio 21, 2017, 08:51:32 pm
Buenas familia.

Otra vez ando por aqui con otra cuestion, a ver si alguien ha resuelto algo parecido, o puedo recomendarme como se podria hacer.

El caso es que, tengo un guardia de seguridad, al cual le he equipado la habilidad de poder ver, mediante un objecto que siempre lo acompaña, con forma de triangulo en horizontal, lo tipico de forma de vision.

EL caso es que cuando el objectoVISION del guarda colisiona con el player, este. actua, se pone en alerta, dispara, etc.
Hasta aqui todo me funciona perfecto.

El caso, es el siguiente. Si el player se agacha tras una caja, el campo si vision del guardia (objectoVISION del guardia), no deberia sobre pasar la caja, y asi, no podria ver al player.

Mi pregunta es...como hago esto??

He pensado en borrar el sprite del objectoVISION al colisionar con la caja, pero, al sobre pasar la caja, este volvera a crear el sprite de la vision???

No se, la verdad es que no lo tengo muy claro la teoria, asi que bueno. A ver si alguien me puede comentar algo, o sabe como podria hacerlo.

Saludos, y abrazos a todos!!!!  ;)

PCNONOGames  www.pcnono.es
 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado Marth

Respuesta #1 en: Junio 21, 2017, 10:03:25 pm
Normalmente, para ver si entre dos objetos hay un tercero cortando el paso, se usa la función collision_line(x,y,other.x,other.y,Obstaculo,preciso,propio_objeto).
Imagino que el guarda debe detectar al enemigo cuando esta a menos de cierta distancia, ademas de que o no esta el rival agachado o no hay obstaculos entre el guardia y su rival.
No haria falta un objeto que ayude al guardia a detectar a los rivales.

Si piensas que los usuarios de tus programas son idiotas, sólo los idiotas usarán tus programas.

-Linus Torvalds ("Padre" de Linux)-
 


Desconectado nonoroman

Respuesta #2 en: Junio 22, 2017, 10:50:48 am
Muchas gracias por contestar Marth, pues no sabia que collision_line, comprobaba un tercer objecto.

De todas formas el objectoVISION me funciona y lo dejare y aparte probare el collision_line para ver si esta detras de un objecto o no.

Voy a probarlo y ya te cuento si me funciona, muchas gracias por el truquillo.  ;D

Normalmente, para ver si entre dos objetos hay un tercero cortando el paso, se usa la función collision_line(x,y,other.x,other.y,Obstaculo,preciso,propio_objeto).
Imagino que el guarda debe detectar al enemigo cuando esta a menos de cierta distancia, ademas de que o no esta el rival agachado o no hay obstaculos entre el guardia y su rival.
No haria falta un objeto que ayude al guardia a detectar a los rivales.

PCNONOGames  www.pcnono.es
 


Desconectado kostra

  • Legendario
  • *
  • Puntos: 2545
  • Mensajes: 2.088
  • Agradecido: 111 veces
  • Sexo: Femenino
  • Sé literalmente el sentido de la vida.
    • Ver Perfil
Respuesta #3 en: Junio 22, 2017, 02:54:43 pm
es justo lo que iba a responderte pero se adelantaron, "EL PODEROSO Y SUPREMO COLLISION LINE!!!"

de qué tercer objeto hablas? léete los parámetros de collision_line xDD
Para lo que buscas es eso sí o sí :B

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


Desconectado Dublan

Respuesta #4 en: Junio 23, 2017, 01:03:02 pm
Otra opción que se me ocurre es que al agacharte supongo que el sprite cambia. Puedes usar un if comprobando que sprite hay en ese momento para activar/desactivar que sea visto.

 
Los siguientes usuarios dieron las gracias a este tema: nonoroman


Desconectado kostra

  • Legendario
  • *
  • Puntos: 2545
  • Mensajes: 2.088
  • Agradecido: 111 veces
  • Sexo: Femenino
  • Sé literalmente el sentido de la vida.
    • Ver Perfil
Respuesta #5 en: Junio 23, 2017, 01:11:44 pm
Otra opción que se me ocurre es que al agacharte supongo que el sprite cambia. Puedes usar un if comprobando que sprite hay en ese momento para activar/desactivar que sea visto.

pero hay que poner más cosas como detectar que se agacha AL LADO DE UNA CAJA, detectar que está en el lado OPUESTO al enemigo referente a la caja... y eso es hacerse el chino xD

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


Desconectado nonoroman

Respuesta #6 en: Junio 27, 2017, 09:54:46 pm
Bueno chiscos, gracias a todos por responder.

He probado el poderoso collision_line, y me he encontrado con lo siguiente.

El caso, es que cuando el player se agacha, tengo el punto y del sprite exactamente en la misma altura, de cuando el sprite del player esta de pie, lo unico que cambio es la mask del player.

Todo esto lo hice asi, para ajustar unos obstaculos que el player tenia que esquivar agachandose, y la verdad es que me quedo de maravilla.

Por eso, preferiria no cambiar ni los ajustes de los sprites de las mascaras.

Pero que ocurre, que el collision_line, no puede diferenciar la diferencia entre cuadno esta agachado o cuando esta de pie.
Entonces, la idea funciona, el enemigo no me ve si estoy detras de la caja, pero no distingue si estoy de pie o agachado, es decir, me ve, o no me ve, en los dos casos iguales por no poder diferenciar la altura del sprite.

Asi que, como puedo ajustar esto???

Alguna super idea???  :-[

PCNONOGames  www.pcnono.es
 


Desconectado Clamud

Respuesta #7 en: Junio 28, 2017, 06:07:05 am
Podrías cambiar de posición el extremo de la línea. Si el personaje está agachado, el extremo es (x,y), y si está de pie, el extrem es (x,y-10).

 
Los siguientes usuarios dieron las gracias a este tema: nonoroman


Desconectado nonoroman

Respuesta #8 en: Junio 28, 2017, 03:05:24 pm
Efectivamente. Eso hice. Dependiendo de la postura del player. El collision_line va medir en puntos diferentes. Y al parecer me funciona. Voy a probarlo a muerto, para ver si en algun momento falla. Pero parece que si, que funciona bien.

Muchas gracias a todos por vuestros consejos.  ;D


PCNONOGames  www.pcnono.es
 


Desconectado kostra

  • Legendario
  • *
  • Puntos: 2545
  • Mensajes: 2.088
  • Agradecido: 111 veces
  • Sexo: Femenino
  • Sé literalmente el sentido de la vida.
    • Ver Perfil
Respuesta #9 en: Junio 30, 2017, 05:35:40 pm
El colision line quizas no, pero todo en este mundo es encerrable en un if

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