Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: pacne en Mayo 22, 2015, 12:28:02 PM

Título: Duda con gml
Publicado por: pacne en Mayo 22, 2015, 12:28:02 PM
buenas estoy creando un contador de movimiento, y este es mi codigo:
// Movimientos Cuadrado

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

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

if !keyboard_check(vk_right) and !keyboard_check(vk_left) and keyboard_check_pressed(vk_down) and place_free(x, y + 1)
    {
    y +=24;
    movimiento = 1
    }
   
if !keyboard_check(vk_right) and !keyboard_check(vk_left) and keyboard_check_pressed(vk_up) and place_free(x, y - 1)
    {
    y -= 24
    movimiento = 1
    }
 
// Colision ob_bloque

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

.
Lo que quiero esq cuando no haya movimiento la variable movimiento sea igual a 0. Todo esto esta montado en Step
Muchas Gracias
Título: Re:Duda con gml
Publicado por: 3dgeminis en Mayo 22, 2015, 04:10:03 PM
// Colision ob_bloque

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

Tambien

if keyboard_check_released(vk_left) or keyboard_check_released(vk_right) or keyboard_check_released(vk_up) or keyboard_check_released(vk_down) {movimiento=0}
Título: Re:Duda con gml
Publicado por: pacne en Mayo 22, 2015, 05:59:45 PM
Lo que me gustaria saber la expresion que si esta colisionando el contador no reste, es que he cambiado el codigo:

// Movimientos Cuadrado

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

if !keyboard_check(vk_down) and !keyboard_check(vk_up) and keyboard_check_pressed(vk_left) and place_free(x - 1, y)
    {
    x -= 24;
    global.score_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 +=24;
    global.score_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 -= 24
    global.score_move -= 1;
    }
 
// Colision ob_bloque

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

Muchas Gracias
Título: Re:Duda con gml
Publicado por: arcangelcaos en Mayo 22, 2015, 06:32:10 PM
Hola, no he entendido bien, pero seria algo asi..... ???

if !(place_meeting(x, y, obj_bloque))  //si no esta el bloque
{

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

if !keyboard_check(vk_down) and !keyboard_check(vk_up) and keyboard_check_pressed(vk_left) and place_free(x - 1, y)
    {
    x -= 24;
    global.score_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 +=24;
    global.score_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 -= 24
    global.score_move -= 1;
    }
 
}
else  // si esta
{que haga lo que sea}
Título: Re:Duda con gml
Publicado por: pacne en Mayo 23, 2015, 03:09:25 AM
Siento si no me expresado bien, lo que quiere es que cuando colisione no cuente movimientos, y no se como ponerlo
Muchas Gracias
Título: Re:Duda con gml
Publicado por: arcangelcaos en Mayo 23, 2015, 09:36:07 AM
Haber si te entiendo. Quieres contar los movimientos que hace ti objeto no??. Y si topa no puede moverse? O se puede mover pero no cuenta movimientos?? Explica un poco mas porfa.
Título: Re:Duda con gml
Publicado por: pacne en Mayo 24, 2015, 01:10:20 AM
el objeto cuando colisiona no se puede moverse y tampoco el contador de movimeintos deberia restar movimientos.
Muchas Gracias
Título: Re:Duda con gml
Publicado por: 3dgeminis en Mayo 24, 2015, 02:14:35 AM
Acabo de probar tu codigo y funciona, se detiene al chocar con las paredes y solo resta cuando se mueve y no cuando tiene un obstaculo enfrente. Cual es el problema  ???
Título: Re:Duda con gml
Publicado por: pacne en Mayo 24, 2015, 02:15:30 AM
La solucion es poner el objeto de colision en solido, jajajajaja.  al utilizar place_free. Cosa que yo no tenia. A veces te pones a dar vueltas y vueltas y despues es una tonteria. Gracias 3d gemenis y a los demas por el interes
Muchas Gracias