Octubre 29, 2020, 05:43:43 AM Ultima modificación: Octubre 29, 2020, 05:47:13 AM por eams1986
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;

[gml]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;

[/gml]

Gracias! saludos y bendiciones

No se si te refieras a esto  Pero aver vere si esto te puede ayudar

Step
[gml]
/*create*/
velocidad=3

/*Step*/
if keyboard_check(vk_left)
{
       repeat (velocidad)
       {
       if(place_free(x-1,y))
            {
             x++
            }
       else
       break;
       }
}
[/gml]
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