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.! ???
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]
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!
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...
Entonces mx es una variable de Game Maker Studio?
Gracias por responder!
Hola Luis En, mx es una variable temporal que colocaras, no es una variable de gms
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) .