Ahora estoy con un juego de plataformas, y en su mayor parte funciona todo bien, si el personaje toca suelo se para, si toca una plataforma con la cabeza mientras salta se va hacia abajo como toca, al detectar una plataforma a la altura del punto X del personaje principal funciona todo perfecto, tanto a la izquierda como a la derecha, el problema es que si la plataforma le viene a la altura de la cabeza, simplemente la atraviesa o se queda enganchado en ella.
Tanto las plataformas como el suelo del escenario son el mismo clip.
Asi es como detecto las colisiones hacia los lados.
Código :
// COLISIONES IZQUIERDA Y DERECHA //DERECHA if (Escenario.hitTest(Personaje._x+Personaje._width/2, Personaje._y, true)) { Personaje._x -= Math.abs(xspeed); xspeed = 0; } //IZQUIERDA if (Escenario.hitTest(Personaje._x-Personaje._width/2, Personaje._y, true)) { Personaje._x += Math.abs(xspeed); xspeed = 0; }
Os paso un crokis de lo que me sucede, el punto rojo es la x del clip.
