Teclas virtuales o virtual keys: ejemplo con botones

También te podría gustar...

17 Respuestas

  1. Marco dice:

    ¡Hola amigo! Muy buen post (y encima en español) sobre la introducción a las virtual keys, me aclaró bastantes dudas, muchas gracias 😀
    Pero tengo un problemilla. Mi juego emplea views para seguir al personaje, entonces lo que hago es agregar los botones y las virtual keys. Con las VK no tengo problemas, ya que se quedan quietas en la misma posición todo el rato, pero con los botones (el dibujo basicamente) se mueve arriba, abajo, izquierda, derecha… hacia donde se mueve el jugador antes de regresar a su posición original. El código que les tengo es muy simple, en el evento Step pongo x e y en función de view_xview y view_yview, pero no consigo que se estén quietos en la misma posición como las Virtual Keys. ¿Tú sabrías cómo arreglar esto?
    ¡Gracias y suerte con tu web!

    • David dice:

      Buenas Marco,
      si tienes los botones como si fuesen objetos, lo más fácil es como tú dices, colocarlos con la posición X/Y con view_xview y view_yview.
      La otra opción más fiable es usar un objeto controlador que sólo pinte los sprites de lo botones, y pintarlos con el evento Draw GUIDraw gui Event, no con DrawDraw Event. Ese evento funciona de la misma manera que las virtual key, pinta basándose en la pantalla, da igual el tamaño de la room o de la view.
      La ventaja es que en el ejemplo ya tienes el X/Y, ancho y alto de la tecla virtual, así que podrías usar esos mismos valores.
      ¡Ya me dirás si te funciona!

      David

  2. ricardo dice:

    Cuando activo el código y con draw gui , igualmente aparece el rectángulo blanco , no hay manera de desaparecerlo o camuflarlo ? , si la hay podrías explicar el código ?

    • David dice:

      El rectángulo blanco se utiliza para ver dónde queda la tecla virtual, que se hace con la función virtual_key_show(index);
      No es obligatorio mostrarlo para que funcione, yo solo lo hago cuando ejecuto en modo debug. Igualmente, con la función virtual_key_hide(index) puedes esconderlo.

  3. Leo dice:

    Buenas men, buen post! Muestras muy buena info! Tengo una inquietud a ver si podrán ayudarme por aquí… Utilizo el evento Draw_GUI y diseño las teclas virtuales, en eso no hay problema, el detalle está cuando muevo al personaje, ya que lo tengo con una cámara de seguimiento, y al llegar al borde, simplemente el personaje pareciera tomar más velocidad con respecto a la cámara que lo sigue y se pierde de la pantalla. Qué podría estar sucediendo? Gracias de antemano.

    • David dice:

      Es posible que haya llegado al final de la room y salga fuera de ella, y la vista siempre se queda hasta el límite de la room.

      • Leo dice:

        Si, modifiqué y estoy haciéndolo solo con el evento Draw, funciona bien, pero el detalle está cuando cambio de dispositivo y las resoluciones son diferentes, modifica al parecer las coordenadas de los botones y es todo un lío 🙁

        • David dice:

          SI, al cambiar la resolución tienes que hacer lo que comento en el post: dividir en áreas la pantalla y decir que la tecla virtual es el área (1,6).
          Ya lo puedes decir que es un lío hasta que aciertas…

  4. Alejandro Tuñon dice:

    Buenas! toda esta info me vino de lujo, pero me esta surgiendo otro problema con el virtual_key.
    Resulta que mi personaje hace un doble salto, en Modo Windows con la BARRA, pulsando una y de nuevo cuando esta en el aire, una como Key_pressed y ya en el aire, key_check
    cuando programo mi botón digamos “B” para android le digo que con “vk_space” salta, cuando pruebo el juego, el personaje salta, pero al apretar de nuevo dicho botón de salto, no lo hace… como puedo hacer?
    gracias!!!

    • David dice:

      Entiendo que si pulsas dos veces la barra, deberías de chequear dos veces con key_pressed, entiendo que en el evento Step.
      Lo que puedes hacer es crearte una variable
      salto = false;
      y cuando pulsas una vez
      if (salto == false){
      salto = true;
      //código del salto
      }

      para la segunda vez añades un else
      else {
      //codigo del salto en el aire
      salto = false;
      }

      También deberías de desactivar la variable una vez ya no esté en el aire.

      • Alejandro Tuñon dice:

        creo que no me estoy expresando como es devido, me seria mas facil compartir pantalla y mostrar el problema, no se bien como explicarlo por aca, tejo mi Discord por si alguien puede ayuarme!
        PoTTi#8969
        Desde ya muchisimas gracias!

  5. alan dice:

    como puedo hacer que el virtual key sea invisible

  6. alan dice:

    como ajustar que los virtual keys no se salgan de su posición en una tableta o celurar

    • David dice:

      En el ejemplo lo explico, no es lo mismo la room que el tamaño de la pantalla, y las virtual keys funcionan con el tamaño de la pantalla.
      Es la solución que comento de dividir la pantalla en una grid y usar esos valores.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *