hola necesito ayuda con la colision al mover el personaje y llegar digamos un muro se detiene 5 pixeles antes y como es un juego de resolucion pequeña se nota bastante la distancia, es en gms2 y ya probe las soluciones de gms 1 y no funcionan.

Que codigos estas usando ?

Cita de: 3dgeminis en Agosto 21, 2018, 03:57:00 PM
Que codigos estas usando ?
gml este /// COLISION

pm = place_meeting(x+hspeed,y+vspeed,object2);

if (pm) {
   ///comprobar colision
   for(var i=0;i<abs(vspeed);i++){
      if (place_meeting(x+sign(hspeed),y,object2)) then break;
      x += sign(hspeed);
   }
   
   hspeed = 0;
   
}   

intenta implementar el engine de colisiones que se encuentra en la seccion de menus, te debe bastar para lo que necesitas sin que te quiebres la Cabeza, solo ten cuidado de tener tus mascaras de collision del mismo tamano
Es Mejor No Saber Porque Funciona, Que Saber El Porque No Funciona...
Tienes alguna duda con "Game Design" o de videojuegos en general, contactamente mas facil en twitter @pavulzavala

#4 Agosto 21, 2018, 10:06:26 PM Ultima modificación: Agosto 23, 2018, 11:28:53 PM por dixon2010
Hola, buenas tardes.

1.Error en linea 3 "vspeed" no se recomienda en colisión horizontal.
2.Las colisiones verticales y horizontales pueden tratarse por separado en plataformas.
3.Debes decirle al objeto que regule su velocidad.
4.Existen tres clases de movimiento horizontal:
   a. la suma de x
   b. hspeed
   c. speed + direction 0, 180, -180
5.La suma de x no se lleva con hspeed, pues hspeed lo gobierna todo.

[EVENTO STEP]
b1=keyboard_check(37)
b3=keyboard_check(39)
v=(b3-b1)*6
//COLISIÓN
while(place_meeting(x+v,y,object2))v-=1*sign(v)
x+=v
Dios nos ayuda y nos da sabiduría para vivir. Cáda código es una obra maestra que hay que respetar aunque exista un código mas eficiente y sencillo.