Noticias

Importante: ¡Si quieres publicar tu juego no olvides leer este tema!

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: conseguir la coordenada en la que un objeto colisiona con otro  (Leído 247 veces)

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

Desconectado VietnamNeko

  • Visitante
  • *
  • Puntos: 21
  • Mensajes: 9
  • solo 2 entidades entienden mi codigo, Dios y yo
    • Ver Perfil
como puedo conseguir la coordenada en la que un objeto colisiona con otro? Quiero que cuando la punta de un objeto colisione con una pared se creen otros objetos.

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado FernandoNavarro

Respuesta #1 en: Marzo 29, 2020, 03:49:50 am
Código: [Seleccionar]
Puedes poner un if que al momento de la colisión con la pared,
revise la posición en x e y desde el origen del objeto que
tiene "la punta". Por ejemplo:

[code (el objeto con la pared)
{
    colisión en x = x + distancia en x a la que está la punta del origen del sprite;
    colisión en y = y + distancia en y a la que está la punta en y;
}

Y después para crear los objetos que quieres crear les pones las variables de colisión en x e y.

 


Desconectado BssString

Respuesta #2 en: Abril 02, 2020, 01:21:32 am
Hola VietnamNeko

Si el objeto tiene una colisión cuadrada, puedes revisar cuál boundary box colisionó comparando las distancias entre las "bbox_bottom, bbox_left, bbox_right y bbox_top" de ambos objetos.
Si el objeto tiene una colisión precisa, te recomiendo usar un segundo objeto con una máscara de colisión más pequeña que te detecte la colisión, como una especie de hurt box o hit box (no sé como se le llama).

Pero todo depende de lo que quieras hacer, no me quedó muy claro... Cuando te refieres a "la punta de un objeto colisione con una pared", pienso que es más fácil calcular la coordenada X/Y de la punta y crear los objetos ahí sin hacer ningún cálculo raro con colisiones.

Saludos