Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: miguel1998 en Abril 30, 2019, 04:04:48 PM

Título: como creo una plataforma atrabesable desde abajo y solida desde arriba
Publicado por: miguel1998 en Abril 30, 2019, 04:04:48 PM
como puedo hacer que mi personaje al saltar atraviese una plataforma desde abajo, pero cuando este sobre ella se vuelva solida (tipo mario.bros)
gracias
Título: Re:como creo una plataforma atrabesable desde abajo y solida desde arriba
Publicado por: somnus en Abril 30, 2019, 08:37:12 PM
tienes que checar la collision solamente cuando el sprite va callendo, puedes poner un punto en la parte baja del sprite, para que al caer estes checando si hay collision de este punto y la plataforma, para esto Tambien vas a necesitar algun estado como:  "CALLENDO", y cuando caes en la plataforma, cambias el estado a IDLE, PARADO, etc, etc.
Título: Re:como creo una plataforma atrabesable desde abajo y solida desde arriba
Publicado por: Clamud en Mayo 01, 2019, 04:12:33 AM
El método depende de cómo están programdos los movimientos y el sistema de colisiones.
He visto una forma sencilla de programarlo; si la posición "y" del bloque es mayor a la posición "y" del player, solid = true, en caso contario solid = false.

Hace unas horas programé un plataformero con plataformas atravesables. Este es el código que utilicé
[gml]
if (vy > 0){//velocidad vertical positiva
   with (obBloqueUnaVia) {
      //si los pies del personaje estaban sobre el bloque
      if (other.yPrev + other.boxD <= y)
      if block_meeting(other.id) {
         other.y = y - other.boxD; //desplazar personaje hacia arriba
         other.piso = true;
         other.saltando = false;
         other.vy = 0;
      }
   }
}
[/gml]
Utilizo variables de colisión que reemplazan a las variables predefinidas de GMS, para tener colisiones más precisas. El problema de GMS es que utiliza cajas de colisiones con valores redondeados.

Muestra el código que utilizas, para ver cómo lo podemos adaptar.
Título: Re:como creo una plataforma atrabesable desde abajo y solida desde arriba
Publicado por: cristopher2545 en Mayo 05, 2019, 08:33:33 AM
este codigo va en el evento step del jugador,  si deseas que el personaje no pueda bajar estando arriba solo quita esta parte "or obj_player.key_down "


with obj_platform
{
    if other.bbox_bottom  >= bbox_bottom or obj_player.key_down
    {
        mask_index = -1;
     
    }
    else
   
    {
        if other.vsp >= 0
        {
       
            mask_index = spr_platform;
        }
    }
}