Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: J.E.A en Junio 22, 2012, 11:20:28 PM

Título: Problema con caja al colisionar con pared (Solucionado)
Publicado por: J.E.A en Junio 22, 2012, 11:20:28 PM
Hola a todos, tengo un pequeño problema con mi personaje y su caja. Estoy haciendo un juego tipo Sokoban. Le puse este código para que mi personaje corra las cajas

En la colision de mi personaje con la caja tengo esto:

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



Hasta aca todo perfecto, la corre y todo, pero no se como hacer para que la caja se frene al colisionar con una pared usando este código  ???






Aclaro que uso movimientos 8x8 usando la acción "Grid"
Título: Re:Problema con caja al colisionar con pared (ayuda)
Publicado por: Texic en Junio 22, 2012, 11:27:18 PM
vx=x-xprevious
vy=y-yprevious
act=0
with (other) {if place_free(x+vx,y+vy) {other.act=1}}
if act=1 {
other.x+=vx
other.y+=vy}

Probá algo así, no estoy con muchas luces hoy pero debería funcionar
Título: Re:Problema con caja al colisionar con pared (ayuda)
Publicado por: J.E.A en Junio 23, 2012, 01:20:48 AM
Cita de: Texic en Junio 22, 2012, 11:27:18 PM
vx=x-xprevious
vy=y-yprevious
act=0
with (other) {if place_free(x+vx,y+vy) {other.act=1}}
if act=1 {
other.x+=vx
other.y+=vy}

Probá algo así, no estoy con muchas luces hoy pero debería funcionar

Me da error. Me dice que las variables "vx" y "vy" no existen. Es necesario poner esas variables en el create?  ;)
Título: Re:Problema con caja al colisionar con pared (ayuda)
Publicado por: knd144 en Junio 23, 2012, 01:32:33 AM
El problema es que las varaibles Vx y vy las creas en un objeto y después, con el with, las tratas de usar en otro objeto.

Crea las variables vx y vy en el otro objeto (creo que la caja) y corrige ligeramente el código así:

vx=x-xprevious
vy=y-yprevious
other.vx=vx
other.vy=vy
act=0
with (other) {
if place_free(x+vx,y+vy) {
other.act=1}
}
if act=1 {
other.x+=vx
other.y+=vy
}


Creo que así funcionaría el código, aun que estoy demasiado dormitado ya que estoy en la escuela  XD  :'(
Título: Re:Problema con caja al colisionar con pared (ayuda)
Publicado por: J.E.A en Junio 23, 2012, 02:34:41 AM
Cita de: knd144 en Junio 23, 2012, 01:32:33 AM
El problema es que las varaibles Vx y vy las creas en un objeto y después, con el with, las tratas de usar en otro objeto.

Crea las variables vx y vy en el otro objeto (creo que la caja) y corrige ligeramente el código así:

vx=x-xprevious
vy=y-yprevious
other.vx=vx
other.vy=vy
act=0
with (other) {
if place_free(x+vx,y+vy) {
other.act=1}
}
if act=1 {
other.x+=vx
other.y+=vy
}


Creo que así funcionaría el código, aun que estoy demasiado dormitado ya que estoy en la escuela  XD  :'(

Ahora si quedo bien, gracias!  XD