Junio 02, 2014, 11:58:37 PM Ultima modificación: Junio 03, 2014, 12:05:37 AM por matiascarpello
Hola gente, verán, estoy haciendo un juego de plataformas y tengo un problema.

Quiero que mi personaje pueda saltar a una superficie desde abajo de ella, y que cuando caiga sobre la superficie se quede sobre ella.

Es halgo que seguro lo vieron en muchos juegos y me gustaría implementarlo en mi juego.

Proba con este codigo (el codigo no es mio pero lo he probado y funciona):
STEP
if !position_meeting(x+1,y+sprite_height-sprite_yoffset,plataforma) and !position_meeting(x+sprite_width-1,y+sprite_height-sprite_yoffset,plataforma)
{gravity=0.5}
else
{gravity=0}

COLISION
if vspeed>0 and yprevious+(sprite_height-sprite_yoffset)<=other.y+1
    {
    vspeed=0
    y=other.y-(sprite_height-sprite_yoffset)
    }
}


Cita de: 3dgeminis en Junio 03, 2014, 12:23:00 AM
Proba con este codigo (el codigo no es mio pero lo he probado y funciona):
STEP
if !position_meeting(x+1,y+sprite_height-sprite_yoffset,plataforma) and !position_meeting(x+sprite_width-1,y+sprite_height-sprite_yoffset,plataforma)
{gravity=0.5}
else
{gravity=0}

COLISION
if vspeed>0 and yprevious+(sprite_height-sprite_yoffset)<=other.y+1
    {
    vspeed=0
    y=other.y-(sprite_height-sprite_yoffset)
    }
}


Ya conocía ese código cuando estaba buscando información al respecto y jamás me funciono.

Lo he vuelto a probar y no funciona.

#3 Junio 03, 2014, 03:47:46 AM Ultima modificación: Junio 03, 2014, 03:49:45 AM por 3dgeminis
Que raro  :-\, a mi si me funciono. Hice un ejemplo para que lo compruebes
Aunque hay un pequeño error, cuando estas en el borde y continuas el jugador queda en el aire, pero no creo que sea muy dificil arreglarlo

Cita de: 3dgeminis en Junio 03, 2014, 03:47:46 AM
Que raro  :-\, a mi si me funciono. Hice un ejemplo para que lo compruebes
Aunque hay un pequeño error, cuando estas en el borde y continuas el jugador queda en el aire, pero no creo que sea muy dificil arreglarlo

Me da error cuando importo el archivo en GMStudio. Pero gracias de todos modos. Se agradece la ayuda.

yo lo hago siempre de esta forma.  en el evento end step del objeto plataforma:
si j1.bbox_bottom > bbox_top {solid=false} else {solid=true}

A ver si podes abrir este ejemplo, esta hecho en game maker studio