Hola me pregunto en que se diferencian el evento de colision y el codigo place_meeting, por que a primera vista parece que sean iguales.
Bueno la diferencia seria que el evento de Colisión verifica si 2 o mas instancias se están intersectando en cualquiera de sus puntos.
mientras en la función Place_Meeting(x,y,obj) lo que hace es verificar si existe una intersección entre las coordenadas (x,y) del objeto que la esta llamado y otro objeto definido en el parámetro 'obj'.
sip, y por lo tanto (a modo de extensión), a nivel de programación y eficiencia, optimización y esas cosas, la función place_meeting trabaja mucho más rápido que comprobar en el evento colisión todos los puntos en donde choca, y eso se nota, te lo digo por experiencia, si tienes una gran cantidad de instancias comprobando (cheking) a la vez los puntos de colisiones, aunque para eso es mejor tener un parent_object.
No, tanto el evento de colisión como la función place_meeting usan la máscara de colisión del objeto, por lo tanto si se usan coordenadas o pixeles para determinar de si hay una colisión depende de si la máscara es precisa o no.
El evento colisión checa por colisiones en la posición del objeto, la función place_meeting esencialmente mueve la instancia a la posición donde se quiere checar por colisiones, checa por colisiones y luego regresa la instancia a su posición original.
El evento solo puede usarse para comprobar colisiones con instancias de un objeto especifico, la función puede buscar colisiones con instancias según objeto, con instancias especificas según su ID, con todos las instancias existentes usando la palabra clave all, o en casos donde aplique, instancias identificadas mediante la palabra clave other.
El evento colisión se ejecuta una vez por cada colisión, si hay 5 objetos que generan colisión en el mismo lugar el evento se ejecutará 5 veces, la función solo regresa true o false, sin importar cuantas colisiones ocurrieran durante el chequeo.
GameMaker usa el método de fuerza bruta para encontrar colisiones, esto quiere decir que revisa todas las instancias que podrían cumplir la colisión sin importar si las instancias podrían realísticamente entrar en colisión. La diferencia entre place_meeting y el evento colisión en este caso es que place_meeting deja de buscar colisiones cuando una ha sido encontrada, pero como el evento colisión se ejecuta una vez por colisión el evento debe seguir buscando colisiones hasta agotar las posibilidades.
Esto hace que la función place_meeting sea más rápida que el evento colisión solo cuando una colisión es encontrada temprano en el bucle, si la instancia que produce la colisión se encuentra al final del bucle, o simplemente no hay colisión entonces place_meeting es tan eficiente como lo sería el evento colisión.
wwo muchas gracias ya me quedo mas claro!!