Hola a todas/os,

Tengo un problema con la colisión del jugador con el suelo. Hasta hace poco, no me había parado a solucionarlo ya que incluso le daba un "no se que"  :P que me gustaba. Pero al incluir plataformas a diferente nivel, estoy teniendo problemas para que quede jugable.

El tema es que el jugador va por el suelo caminando y puede saltar ( doble salto incluído ). Cae al suelo y para su caída. Si das un doble salto y coge una altura determinada, se posa correctamente sobre el suelo. Pero si das un salto simple, con lo que no se eleva demasiado, al posarse sobre el suelo se hunde un par de pixels. Llevo días buscando una solución y no doy con ella. He probado cambiando el código y diferentes tipos de configuración de colisión en los sprites, pero nada.

A ver si alguien me puede indicar el camino  :-[


// Step
// Comprueba contacto con suelo para hacerlo caer con gravedad o frenarlo
if ( place_meeting ( x, y+1, obj_ground ) )
    {
    vspd = 0;
    }
    else
        // Gravedad
        {
        if ( vspd < 20 )
            {
            vspd += grav;
            }
        }

// Colisión vertical
if (place_meeting(x, y+vspd, obj_ground))
    {
    while(!place_meeting(x, y+sign(vspd), obj_ground))
        {
        y += sign ( vspd );
        }
    vspd = 0;
    }


usa una mask.
Si ya la usas cambia ese codigo yo uso este en colision contra el suelo.
move_contac_solid(direction,vspeed) vspeed=0;
Atentamente.-
Elvis Kelley
Mi Manual.
Mi canal de Youtube Youtube click aqui
Video tutoriales Game maker