Noticias

¡Ayuda a la Comunidad GM, haz una donación!

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Plataformas verticales  (Leído 385 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Kain88

en: Septiembre 12, 2020, 01:29:24 am
Hola! Tengo unas plataformas que se mueven verticalmente, primero ascienden y una vez que tocan el techo descienden, y a la inversa si el personaje esta sobre ellas. Logré que el personaje se mueva sobre la plataforma sin problema pero sucede que si la plataforma esta bajando con el personaje encima, cuando comienza a ascender nuevamente, el personaje baja un pixel y queda estancado en la plataforma.

El código de la plataforma en el evento step es el siguiente:

if (place_meeting(x, y - 1, obj_player)) && vsp == 0 {
    phase = 1;
}

if (place_meeting(x, y - 1, obj_spike)) {
    phase = 2;
}

if (phase == 1) {
    vsp = -2;
}

if (phase == 2) {
    vsp = 1;
}

if (place_meeting(x, y - 1, obj_player))
    obj_player.y += vsp;

if (vsp > 0) && (y >= ystart) {
    vsp = 0;
    y = ystart;
}

//Colisiones
scr_collisions();

El código de las colisiones es el siguiente:

//Colisiones horizontales
if (hsp != 0) {
    if (place_meeting(x + hsp, y, obj_solid)) {
        while (!place_meeting(x + sign(hsp), y, obj_solid))
            x += sign(hsp);
        hsp = 0;
    }
}
x += hsp;

//Colisiones verticales
if (vsp != 0) {
    if (place_meeting(x, y + vsp, obj_solid)) {
        while (!place_meeting(x, y + sign(vsp), obj_solid))
            y += sign(vsp);
        vsp = 0;
    }
}
y += vsp;

Ya intente poniendo el código en "end step event", usando bbox_top, etc. sin resultados positivos

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado 8 bits

Respuesta #1 en: Septiembre 12, 2020, 09:42:47 pm
puedes hacer que si la plataforma detecte si el jugador está "atascado" mandar un pixel arriba al objeto del jugador

Azter