Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Luis En en Agosto 31, 2018, 04:40:33 AM

Título: AYUDA: Para que Personaje pueda mover Caja
Publicado por: Luis En en Agosto 31, 2018, 04:40:33 AM
Holaaa querida comunidad!

Espero me puedan ayudar con esto que creo que es simple, pero yo no lo puedo descifrar XD.

Lo que quiero exactamente es que mi personaje pueda mover un objeto (caja) al presionar una tecla + las teclas de avanzar y retroceder.

He estado revisando anteriores temas que tratan de algo parecido, sin embargo, no he podido solucionarlo.

Mi personaje al acercarse a la caja, no la empuja. La caja se queda como un sólido más, pegada al suelo. Y cuando le quito la solidez, no me puedo parar encima de ella, y tampoco la empuja bien, solo da un pequeño salto hacia el lado donde empujo.

He probado estos métodos:

Primero esto:

En Event Step > Obj_Caja


if keyboard_check(ord("A")) && place_meeting(x+1,y,Obj_Player)
    {
     x -= 3   
    }

if keyboard_check(ord("D")) && place_meeting(x-1,y,Obj_Player)
    {
     x +=3 


y luego esto:

En Event Collision con Caja > Obj_Player


other.x+=x-xprevious
other.y+=y-yprevious


Y ninguno me ha funcionado, en los dos la caja se queda pegada en el suelo.

Espero me puedan ayudar.! ???
Título: Re:AYUDA: Para que Personaje pueda mover Caja
Publicado por: 3dgeminis en Agosto 31, 2018, 07:18:56 AM
Yo lo haria asi:
[gml]
if keyboard_check(ord("D")) {mx=1} else
if keyboard_check(ord("A")) {mx=-1} else
{mx=0}

repeat(3)
  {
   if !place_meeting((x+mx), y, Obj_Caja) {x+=mx}
   
   if keyboard_check(ord("M"))
     {
      with(instance_place((x+mx), y, Obj_Caja)) {x+=other.mx}
     }
  }
[/gml]
Título: Re:AYUDA: Para que Personaje pueda mover Caja
Publicado por: Luis En en Agosto 31, 2018, 08:05:42 AM
Cita de: 3dgeminis en Agosto 31, 2018, 07:18:56 AM
Yo lo haria asi:
[gml]
if keyboard_check(ord("D")) {mx=1} else
if keyboard_check(ord("A")) {mx=-1} else
{mx=0}

repeat(3)
  {
   if !place_meeting((x+mx), y, Obj_Caja) {x+=mx}
   
   if keyboard_check(ord("M"))
     {
      with(instance_place((x+mx), y, Obj_Caja)) {x+=other.mx}
     }
  }
[/gml]

Ok, ahora lo pruebo!
Y mx es una variable que debo de crear?

Gracias por responder!
Título: Re:AYUDA: Para que Personaje pueda mover Caja
Publicado por: empardopo en Agosto 31, 2018, 03:46:41 PM
Cita de: Luis En en Agosto 31, 2018, 08:05:42 AM
Cita de: 3dgeminis en Agosto 31, 2018, 07:18:56 AM
Yo lo haria asi:
[gml]
if keyboard_check(ord("D")) {mx=1} else
if keyboard_check(ord("A")) {mx=-1} else
{mx=0}

repeat(3)
  {
   if !place_meeting((x+mx), y, Obj_Caja) {x+=mx}
   
   if keyboard_check(ord("M"))
     {
      with(instance_place((x+mx), y, Obj_Caja)) {x+=other.mx}
     }
  }
[/gml]

Ok, ahora lo pruebo!
Y mx es una variable que debo de crear?

Gracias por responder!

Yo creo que no hace falta que crees nada sino que esa variable tomará el valor 0,1 o -1 dependiendo de lo que hayas pulsado o no pulsado...
Título: Re:AYUDA: Para que Personaje pueda mover Caja
Publicado por: Luis En en Agosto 31, 2018, 07:24:02 PM
Entonces mx es una variable de Game Maker Studio?

Gracias por responder!
Título: Re:AYUDA: Para que Personaje pueda mover Caja
Publicado por: Goganpis en Septiembre 01, 2018, 04:38:23 PM
Hola Luis En, mx es una variable temporal que colocaras, no es una variable de gms
Título: Re:AYUDA: Para que Personaje pueda mover Caja
Publicado por: shadowmanuel en Septiembre 02, 2018, 09:11:06 PM
Hola vi tu ejemplo, todavia no la implemento pero ojala te sirva:
Si estas yendo para el lado derecho lado=1.
si lado=1 y tienes una colision con objeto caja
cambias a sprite empujar
move toward point al personaje en x+2 y la caja en x2 eso deberia crear
la ilusion de que se mueve, mas tarde la implemento (ojala salga) .