Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: eams1986 en Octubre 29, 2020, 05:43:43 am

Título: Player se traba en la pared
Publicado por: eams1986 en Octubre 29, 2020, 05:43:43 am
Hola! a todos :)

Estoy tratando de colisionar con un objeto pero se me queda trabado cuando colisiono :(

La mascara de colision es cuadrada

https://i.gyazo.com/37f0df6c12cc887d78a8146517a4a6f1.png
https://i.gyazo.com/34e2247fad6a54ead47470b9b0359847.png

tambien al mover el player estoy utilizando friction cuando se detiene el player : friction = 0.06;

velocidad = 3

if keyboard_check(vk_left){
    hspeed =-velocidad;
    giro_sierra_left = true;
    buffer_giro++;
    }
       
if keyboard_check(vk_right) {
    hspeed =+velocidad;
    giro_sierra_left = true;
    buffer_giro++;
    }

//Check for horizontal collisions
if place_meeting(x+hspeed,y,o_wall_23){
    while !place_meeting(x+sign(hspeed),y,o_wall_23){
        x = x + sign(hspeed);
        }
    hspeed = 0;
    }
x = x + hspeed;

//Check for vertical collisions
if place_meeting(x,y+vspeed,o_wall_23){
    while !place_meeting(x,y+sign(vspeed),o_wall_23){
         y = y + sign(vspeed);
        }
    vspeed = 0;
    }    
y = y + vspeed;


Gracias! saludos y bendiciones
Título: Re:Player se traba en la pared
Publicado por: Marcusmaniacus en Octubre 30, 2020, 06:10:23 am
No se si te refieras a esto  Pero aver vere si esto te puede ayudar

Step
/*create*/
velocidad=3

/*Step*/
if keyboard_check(vk_left)
{
       repeat (velocidad)
       {
       if(place_free(x-1,y))
            {
             x++
            }
       else
       break;
       }
}
Lo mismo seria para el otro lado no se si a eso te referias ya que no comprendi mucho tu punto espero que te ayudara en todo caso que no si me explicas mejor tal vez te pueda ayudar