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"
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
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? ;)
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 :'(
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