Enero 23, 2016, 01:59:00 AM Ultima modificación: Enero 24, 2016, 09:59:51 PM por eams1986
Hola amigos makeros necesito una ayudita con este tema

tengo este codigo en

//END STEP DE LA PLATAFORMA
if place_meeting(x,y-1,obj_player)
  {
   obj_player.x+=spd; //funciona bien
  }
  else

if place_meeting(x,y-1,obj_player)
  {
   obj_player.x-=spd;//aqui no funciona
  }


https://gyazo.com/6d38726bceb3054307757348c94c2b97

Es el player el problema la plataforma funka bien!

para un lado si se mueve junto a la plataforma

pero para el otro no esta bien.

Gracias

trata de que la plataforma su spd se mantenga, a la izquierda en positivo, y a la derecha en negvativo, así solo has de poner:
if place_meeting(x,y-1,obj_player)
   obj_player.x=spd; //funciona bien

y no hace falta nada más ;)
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]


trata de poner en el create de la plataforma:
vspeed = 4; //4 por ejemplo

y en la colisión con la pared mismo:
vspeed = -vspeed;

entonces en su step ya puedes poner:
if place_meeting(x,y-1,obj_player)
     obj_player.vspeed = vspeed;

si ves que al salir de la plataforma tu player aun se mueve, añádele después de eso último un else:
else
     obj_player.vspeed = 0;




PD: todo a ojo, macabo de despertar xD
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

no se si ya resolvieron tu problema, pero el codigo que pasaste esta mal.
Cita de: eams1986 en Enero 23, 2016, 01:59:00 AM
Hola amigos makeros necesito una ayudita con este tema

tengo este codigo en

//END STEP DE LA PLATAFORMA
if place_meeting(x,y-1,obj_player)
  {
   obj_player.x+=spd; //funciona bien
  }
  else

if place_meeting(x,y-1,obj_player)
  {
   obj_player.x-=spd;//aqui no funciona
  }


https://gyazo.com/6d38726bceb3054307757348c94c2b97

Es el player el problema la plataforma funka bien!

para un lado si se mueve junto a la plataforma

pero para el otro no esta bien.

Gracias

estas usando en el else la misma condicional que usas en el primer if, por eso esa parte del codigo nunca se ejecutara porque, en primer lugar, ya es falso.

[gml]
if place_meeting(x,y-1,obj_player)//esto
  {
   obj_player.x+=spd;
  }
  else
if place_meeting(x,y-1,obj_player)//y esto son iguales.
  {
   obj_player.x-=spd;
  }
//por lo que no se ejecuta porque es falso
[/gml]
lo que entiendo de tu codigo es que si el jugador esta encima de la plataforma, mientras este encima, le estara sumando a su x la velocidad de desplazamiento de la platafarma. y si no esta encima hace exactamente lo mismo. hay radica tu problema

tienes que hacer algo asi
[gml]
//END STEP DE LA PLATAFORMA
if place_meeting(x,y-1,obj_player)
  {
   obj_player.x+=(spd*dir);
  }

[/gml]

donde dir es la direccion de tu plataforma, si va a la derecha es 1 y si va a la izquierda es -1
no puedo creer que me hice un tumblr.
YGE Productions yep, otro tumblr.
y como no, el manual tambien

Gracias ya estaba solucionado fue error mio no ponerlo en el titulo ;) ;)