Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Silver_light en Marzo 30, 2015, 05:33:49 PM

Título: Mi personaje se queda trabado en el suelo
Publicado por: Silver_light en Marzo 30, 2015, 05:33:49 PM
Bien, tengo un código para crear gravedad para mi personaje plataformero, el código es el siguiente:

[GML]
if (!place_meeting(x,y+vspeed,plataforma_normal))
{
    if (gravedad == 0)
        gravedad = cant_gravedad;
       
    vspeed += gravedad;
}

if (place_meeting(x,y+vspeed+1,plataforma_normal) && (vspeed >= 0))
{
    if (vspeed != 0)
        vspeed = 0;
   
    gravedad = 0;
   
    while (place_free(x,y+1))
        y += 1;
}
else
{
    if (place_meeting(x,y+vspeed+1,plataforma_normal) && (vspeed < 0))
        vspeed = 0;
}

if (!place_free(x,y))
    move_outside_solid(90,10);

if (vspeed > 12)
    vspeed = 12;
[/GML]
donde la variable gravedad esta definida en el personaje como una variable y cant_gravedad es una constante con valor unitario.

Luego los objetos que conforman las plataformas y las paredes son puramente sólidos sin contener ningún código de colisión.
Mi problema está en que a veces mi personaje se queda trabado por la parte de abajo y no sé porqué :-[

Gracias de antemano!
Título: Re:Mi personaje se queda trabado en el suelo
Publicado por: king195 en Marzo 30, 2015, 06:14:30 PM
Solido, las colisiones con objetos sólidos son las más nefastas de Game Maker por que dan un montón de problemas y pocas soluciones a lo que buscamos, lo mejor y más recomendable es que pases todo el código que tienes a objetos no sólidos.
Título: Re:Mi personaje se queda trabado en el suelo
Publicado por: elviskelley en Marzo 31, 2015, 07:29:45 PM
no se por que pero usar place_meeting me ha dado siempre en plataformas muchos dolores de cabeza, aunque no niego que los uso mucho. Proba con collision_line siempre resulta mejor.
aca no deberia ir el = (vspeed >= 0) deberia ir si el = o lo bajas a -1.
Título: Re:Mi personaje se queda trabado en el suelo
Publicado por: Kain88 en Marzo 31, 2015, 09:01:24 PM
Como te dijeron mas arriba, te conviene dejar de usar sólidos. Yo desde que comencé a usar place_meeting no tuve un solo problema, cuando usaba sólidos era un dolor de cabeza. Lo que mencionas de que el personaje se traba en el suelo me pasaba a cada rato, asi que nunca mas  XD