Hola nuevamente, muy a duras penas y con un esfuerzo titanico he conseguido entre ayuda de la gente de aquí ayuda de tutoriales y algo de ayuda divina, que mi player haga todos los movimientos y colisiones geniales escepto la de choque con el techo que se me queda trabado llevo desde esta mañana con este mismo problema y como os digo he revisado tutoriales y todo me falla si algún alma cándida quisiera echarme una pequeña manita....
PD : dejo un editable con el ejemplo en si de como tengo todo hasta ahora

Gracias de antemano a todos.

yo para que no se pegue con el techo suelo poner siempre únicamente if !place_free(x,y-1) y += 1;
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

nada no me funciona de ninguna manera eso kostra derrepente mi player empieza a rebotar..........

cómova a rebotar si con lo que te puse detecta lo de arriba, explicate :S representa que tienes gravedad
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

pues lo que te digo que se comporta de una manera algo rara   XDXD seguramente sea porque mi organización de código es bastante mala y cualquiera de las cosas que haya hecho entre en conflicto de alguna manera con el código que me has dado así que como te digo rebota......XDXD

ya tardas en plasmar todo tu código aquí xD o quieres que te pase el engine platform que uso yo siempre?
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

he dejado un edítable si te vale???si no escribo todo el código XDXD jajaja obviamente también me encantaría tener tu engine ya que desgraciadamente en gml soy un poco lastimoso y en España hay pocos sitios en los que enseñen gml..... pero bueno XD


mejor sí, te paso lo ke uso, pk ando bebido y no soy capaz de ayudarte mirando tu engine ahora, para mí ahora, un libro de niños de 3 años es ilegible xD
[gml]///plat_create(spd,jmp,grv)
/*
0 velocidad
1 salto
2 gravity

ejemplo: plat_create(4,10,1);
*/
walksp = argument0;
jumpsp = argument1;
grav = argument2;
hsp = 0;
vsp = 0;
ground = 1;
[/gml]
[gml]///plat_step(mode,spr_stand,spr_walking,spr_in_air)
/*
0 mode (0 = flechas, 1 = WASD)
1 spr quieto
2 spr corriendo
3 spr en el aire

ejemplo: plat_step(1,spr_stand,spr_walk,spr_air);
*/

if argument0 <= 0
{
    KEY_RIGHT=keyboard_check(vk_right);
    KEY_LEFT=keyboard_check(vk_left);
    KEY_JUMP=keyboard_check_pressed(vk_up);
    KEY_FALL=keyboard_check_released(vk_up);
}
else
{
    KEY_RIGHT=keyboard_check(ord('D'));
    KEY_LEFT=keyboard_check(ord('A'));
    KEY_JUMP=keyboard_check_pressed(ord('W'));
    KEY_FALL=keyboard_check_released(ord('W'));
}
   
if (KEY_RIGHT)
{
   hsp=walksp;
   image_xscale=1;
}
if (KEY_LEFT)
{
   hsp=-walksp;
   image_xscale=-1;
}
if (!KEY_RIGHT and !KEY_LEFT) hsp=0;
if (!place_free(x+hsp,y))
{
   if (hsp!=0)
      while (place_free(x+sign(hsp),y))
         x+=sign(hsp);
   hsp=0;
}
x+=hsp;
if (!place_free(x,y+1)) grounded=1;
else grounded=0;
if (KEY_JUMP and grounded)
{
   vsp=-jumpsp;
}
if (KEY_FALL and !grounded and vsp<-1) vsp=-1;
if (!grounded) vsp+=grav;
if (!place_free(x,y+vsp) && vsp<0)
{
   while (place_free(x,y+sign(vsp))) y+=sign(vsp);
   vsp=0;
}
if (!place_free(x,y+vsp) and vsp>0)
{
   var cc;
   cc=vsp+1;
   while (place_free(x,y+1) and cc>=0) y+=1;
   grounded=1;
   vsp=0;
}
y+=vsp;
if (grounded)
{
   if (hsp==0)
   {
      sprite_index=argument1;
   }
   else
   {
      if (sprite_index!=argument2)
      sprite_index=argument2;
   }
}
else
{
   sprite_index=argument3;
}
[/gml]
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

te lo agradezco aunque creo que es algo complejo para mi tu sistema voy a intentar implementarlo con el que ya tengo a ver si doy con la solución a todos mis males XD

pero si tienes anotado hasta ejemplos xDD
es copypaste practicamente xd
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

Si jajajaaj pero el problema que aunque sea copy paste a veces al tener tanto lío en mi código interno luego no suelen quedar bien jajajaj

por eso te pasé SCRIPTS para que no se te mezcle con tus cosas xD, te has parado a prestarle una MÍNIMA atención a lo que te puse? xD
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

si pero querido kostra me temo que aun soy algo novato para entender el funcionamiento..... :(

Que esto no es un chat por Dios!
¿Van a escribir una frase por post?
XD :-[
alaberga regué el café.

BA:STFW&RTFM

1- crea un script llamado "plat_create" con el primer código
2- crea un script llamado "plat_step" con el segundo código
3- en el player, evento create escribe plat_create(velocidad,velocidad_de_salto,gravedad);
por ejemplo plate_create(5,15,1);
4- en el player, evento step escribe plat_step(modo,sprite_quieto,sprite_corriendo,sprite_en_el_aire);
por ejemplo plat_step(1,spr_quieto,spr_caminando,spr_salto);

siendo el modo, 0 para las flechas del teclado, 1 para W,S,A,D   elije el que más te guste.

5- FIN disfruta de tu platformer del futuro xD
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]