Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: pacne en Abril 14, 2015, 06:33:30 PM

Título: Como puedo hacer un contador de movimientos (Solucionado)
Publicado por: pacne en Abril 14, 2015, 06:33:30 PM
Buenas comunidad, estoy haciendo un juego con movimientos, el objeto se mueve cada vez que aprietas la tecla con keyboard_check_pressed, lo que quiero es que cada movimiento que haga me sume un movimiento, pero si el jugador esta colisionando y no se mueve no cuente.
Lo he creado con una variable  pero lo de la colision no se como hacerlo.
Muchas Gracias
Título: Re:Como puedo hacer un contador de movimientos
Publicado por: penumbra en Abril 14, 2015, 06:44:29 PM
Lo ideal es declarar variables banderas, es decir, que te avisen cuando ocurra o no un evento, por ejemplo, una variable colision que sea true cuando haya colisión y false cuando no la haya (y esto depende de cómo manejes tus colisiones, hay muchas maneras, pero no indicas cual usas). Una variable moviendo que sea true cuando el personaje se mueva y false cuando no se mueva (y , otra vez, esto depende de cómo muevas a tu personaje, si es mediante hspees, vspeed y speed o ajustando los valores x e y)

cuando las banderas ya estén funcionando
[gml]
if keyboard_check_pressed(tecla_deseada) and (!colision) and (!moviendo)
{
     numero_movimientos += 1
}[/gml]
Título: Re:Como puedo hacer un contador de movimientos
Publicado por: pacne en Abril 14, 2015, 09:05:37 PM
Este es mi codigo de movimiento:

if !keyboard_check(vk_up) and !keyboard_check(vk_down) and keyboard_check_pressed(vk_right)and place_free(x+1,y)    {x+=32;}
if !keyboard_check(vk_up) and !keyboard_check(vk_down) and keyboard_check_pressed(vk_left)and place_free(x-1,y)     {x-=32;}
if !keyboard_check(vk_right) and !keyboard_check(vk_left) and keyboard_check_pressed(vk_down)and place_free(x,y+1)  {y+=32;}
if !keyboard_check(vk_right) and !keyboard_check(vk_left) and keyboard_check_pressed(vk_up)and place_free(x,y-1)    {y-=32;}


Muchas Gracias
Título: Re:Como puedo hacer un contador de movimientos
Publicado por: Clamud en Abril 14, 2015, 09:20:31 PM
Pues ya tienes las condiciones para hacer que se mueva, que son las mismas condiciones para incrementar el contador. El código puede quedar así:
[gml]
... {x+=32; contador++;}
... {x-=32; contador++;}
... {y+=32; contador++;}
... {y-=32; contador++;}
[/gml]
Título: Re:Como puedo hacer un contador de movimientos
Publicado por: pacne en Abril 14, 2015, 10:20:54 PM
este es mi codigo de movimiento y de colision

if !keyboard_check(vk_up) and !keyboard_check(vk_down) and keyboard_check_pressed(vk_right)and place_free(x+1,y)    {x+=32; global.move+=1;}
if !keyboard_check(vk_up) and !keyboard_check(vk_down) and keyboard_check_pressed(vk_left)and place_free(x-1,y)     {x-=32;global.move+=1;}
if !keyboard_check(vk_right) and !keyboard_check(vk_left) and keyboard_check_pressed(vk_down)and place_free(x,y+1)  {y+=32;global.move+=1;}
if !keyboard_check(vk_right) and !keyboard_check(vk_left) and keyboard_check_pressed(vk_up)and place_free(x,y-1)    {y-=32;global.move+=1;}

// Colision ob_bloque

if place_meeting(x,y,obj_bloque)
{
     x=xprevious;
     y=yprevious;
}


Gracias
Título: Re:Como puedo hacer un contador de movimientos
Publicado por: pacne en Abril 14, 2015, 11:03:21 PM
Solucionado!!
Muchas Gracias