Diciembre 27, 2017, 09:06:23 PM Ultima modificación: Diciembre 29, 2017, 04:25:41 PM por pixel king
Hola he estado mirando y pensando la forma de saber el punto exacto de colisión entre dos objetos y no consigo averiguarlo
Si alguien sabe alguna forma le estaría agradecido


¿qué tipo de máscara de colisión usas? Si son sólo círculos o rectángulos, es fácil obtener el punto exacto de colisión, pero si son figuras irregulares es bastante más complejo.
alaberga regué el café.

BA:STFW&RTFM

Si mostraras algunas imágenes del escenario que estas haciendo, se podría saber que tipo de colisión estas usando, o al menos cual seria la mas optima, por lo general la gente la suele hacer con cuadrados perfectos.

Cita de: Naitsabes0 en Diciembre 28, 2017, 01:13:24 AM
Si mostraras algunas imágenes del escenario que estas haciendo, se podría saber que tipo de colisión estas usando, o al menos cual seria la mas optima, por lo general la gente la suele hacer con cuadrados perfectos.

dberias adjuntar una imagen y mas o menos darnos una idea de como quieres hacer la colision, por cierto el Juego SpacialFigthIII, lo estoy terminando en GMS 2, asi que espero pronto agregar algunos detalles importantes, asi como toda la musica.
Es Mejor No Saber Porque Funciona, Que Saber El Porque No Funciona...
Tienes alguna duda con "Game Design" o de videojuegos en general, contactamente mas facil en twitter @pavulzavala

la colisión ya la tengo hecha, lo que quiero saber es el punto exacto donde colisionan el circulo(una sierra que va girando) y el cuadrado(un bloque que está quieto) porque quiero hacer que conforme vayan chocando se dibuje cada vez menos bloque utilizando draw_sprite_part, es decir, quiero que se "destruya" el bloque de manera progresiva

Adjunto una imágen

Un círculo colisiona con un rectángulo cuando la distancia entre el centro del primero y el punto más cercano a éste (dentro del rectángulo) es menor a su radio. Y dicho punto es el que buscas:


Para obtenerlo, puedes usar la función clamp()
[gml]
punto_col_x = clamp(circulo_x, rectangulo_x1, rectangulo_x2);
punto_col_y = clamp(circulo_y, rectangulo_y1, rectangulo_y2);
[/gml]

Por si te sirve: https://bygdle.xyz/blog/2017/12/13/creando-un-shooter-en-html5-parte-5/
alaberga regué el café.

BA:STFW&RTFM

Muchas gracias a todos, ya lo tengo resuelto ahora solo tengo que ir mejorando el sistema  XD