Una forma rápida de hacer las colisiones es utilizar el sistema de física. Sin embargo, no se adapta bien a algunos estilos de juego y hay que ajustar bien las propiedades físicas para lograr el efecto deseado (fricción entre superficies, cantidad de rebote, masa).
http://docs.yoyogames.com/source/dadiospice/002_reference/physics/index.html
Para objetos rectangulares uso un sistema como el que aparece en este tema (ve el archivo adjunto en el último mensaje)
http://www.comunidadgm.org/preguntas-y-respuestas/problema-con-colisiones-(jugador-volador)/msg127272/#msg127272
Para objetos circulares y elípticos he usado algo como esto
https://www.gamedev.net/articles/programming/math-and-physics/simple-but-effective-collisions-part-1-radial-collision-handling-r3147
Objetos con formas más irregulares pueden dividirse en círculos y rectángulos. También se puede implementar un sistema de física como Verlet.
http://docs.yoyogames.com/source/dadiospice/002_reference/physics/index.html
Para objetos rectangulares uso un sistema como el que aparece en este tema (ve el archivo adjunto en el último mensaje)
http://www.comunidadgm.org/preguntas-y-respuestas/problema-con-colisiones-(jugador-volador)/msg127272/#msg127272
Para objetos circulares y elípticos he usado algo como esto
https://www.gamedev.net/articles/programming/math-and-physics/simple-but-effective-collisions-part-1-radial-collision-handling-r3147
Objetos con formas más irregulares pueden dividirse en círculos y rectángulos. También se puede implementar un sistema de física como Verlet.