Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: ZombMax en Febrero 28, 2014, 11:06:45 PM

Título: [Solucionado] El jugador se traba al pulsar las dos teclas de dirección
Publicado por: ZombMax en Febrero 28, 2014, 11:06:45 PM
En un plataformas, si pulso ambas teclas de dirección (izquierda y derecha) el personaje se queda en su sitio.

Es lógico porque si pulso izquierda + derecha se desplaza 4 píxeles a ambos lados, y por tanto se queda estático.
¿Cómo podría hacer, de la forma más simple posible, que si estoy moviendo mi personaje hacia la izquierda y pulso la derecha sin soltar la izquierda el personaje cambie de dirección, y viceversa? Preferiblemente usando Drag and Drop  :P

EDIT:
Acabé haciendo una pequeña chapuza pero bueno xD
Creé una variable llamada "movimiento" y le asigné 0 para parado, -1 para izquierda y +1 para derecha.
De modo que al pulsar izquierda, si la variable es igual o menor a 0, permite que se ejecute el evento.
Y al pulsar derecha, si la variable es igual o mayor a 0, también lo permite.
De este modo, al soltar izquierda o derecha, el valor de la variable vuelve a 0, y si ya hay una tecla pulsada la otra no reacciona. No es exactamente lo que buscaba, pero al menos el jugador ya no se queda trabado al pulsar las dos.
Título: Re:El jugador se traba al pulsar las dos teclas de dirección
Publicado por: vampy09 en Marzo 01, 2014, 12:39:44 AM
Trata con lo siguiente:

1) Selecciona el evento con el que mueves el personaje hacia la derecha.
2) Selecciona la pestaña Control de las acciones.
3) Arratra y abre el boton Execute Code.
4) escribe lo siguiente:
   
    io_clear();

5) Cierra la ventana y asegurate que este de PRIMERO.
6) Repite todo con el evento del lado izquierdo.

io_clear(); "limpia" toda entrada que haya en ese momento del teclado.

Saludos!
Título: Re:El jugador se traba al pulsar las dos teclas de dirección
Publicado por: ZombMax en Marzo 01, 2014, 02:05:23 AM
Cita de: vampy09 en Marzo 01, 2014, 12:39:44 AM
Trata con lo siguiente:

1) Selecciona el evento con el que mueves el personaje hacia la derecha.
2) Selecciona la pestaña Control de las acciones.
3) Arratra y abre el boton Execute Code.
4) escribe lo siguiente:
   
    io_clear();

5) Cierra la ventana y asegurate que este de PRIMERO.
6) Repite todo con el evento del lado izquierdo.

io_clear(); "limpia" toda entrada que haya en ese momento del teclado.

Saludos!

Me temo que no funciona, básicamente hace una pausa en cualquier movimiento del personaje antes de ir hacia la dirección que quiero, y además impide el movimiento entre saltos  :-[ :-[
Gracias por contestar de todos modos, ¿no hay una manera de hacer que ese código funcione sólo para una tecla en concreto?
Título: Re:El jugador se traba al pulsar las dos teclas de dirección
Publicado por: gortz en Marzo 01, 2014, 04:54:15 AM
que eventos/acciones usas?
que yo sepa si presionas los 2 botones ganara el que este mas abajo
Título: Re:El jugador se traba al pulsar las dos teclas de dirección
Publicado por: joako98 en Marzo 01, 2014, 05:13:14 AM
lo estas haciendo con gml???? si es asi pasame el codigo
Título: Re:El jugador se traba al pulsar las dos teclas de dirección
Publicado por: ZombMax en Marzo 01, 2014, 11:08:59 AM
Cita de: gortz en Marzo 01, 2014, 04:54:15 AM
que eventos/acciones usas?
que yo sepa si presionas los 2 botones ganara el que este mas abajo

Es el movimiento más básico:
AL PULSAR IZQUIERDA
-Escala de sprite normal, pero volteado (para que la imagen sea la del muñeco mirando hacia esa dirección)
-Que cambie la animación del sprite a la de movimiento con subimage -1 para que la animación sea fluida, y velocidad 0.5
-Si no detecta colisión sólida a 4 píxeles a la izquierda;
[-Que el jugador retroceda 4 píxeles.] Sé que los bloques no hacen falta, pero bueno.

Obviamente es igual al pulsar la derecha.
Edito otra vez: Aquí la imagen, intenté subirla pero me temo que no se sube nada, así que usé un enlace externo:
[spoiler](http://i1132.photobucket.com/albums/m563/ZombMax/imagenkasekfunsione_zps78660ff4.png)[/spoiler]

De momento estoy centrándome en que todo el movimiento vaya perfecto, diría que eso es lo único que me falta.

Cita de: joako98 en Marzo 01, 2014, 05:13:14 AM
lo estas haciendo con gml? ??? si es asi pasame el codigo

Por ahora prefiero no usar gml hasta que no sea estrictamente necesario, intenté hacer un juego sólo con gml y me lié de una manera sobrehumana. Pero si tengo que usar algún código, lo uso, claro.