Botones con android y LibGDX – android libgdx

Pregunta:


Buenas, he creado un pequeño boton en android, con libGDX muy sencillo, pero el problema es el siguiente:

Le tengo asignada una funcion que escribe por pantalla ("hola") algo asi:

if(boton.sePulsa()){
   System.out.println("hola")
  }

y claro pues me imprime por pantalla 3 veces o mas, "hola", y yo quiero que hasta que no se vuelva a pulsar no imprima nada. Alguna ayuda pls.

//Edito la función sePulsa() es la siguiente:

public boolean sePulsaElBoton() {
    return Gdx.input.isTouched() && Gdx.input.getX() >= xMinima && Gdx.input.getX() <= xMaxima &&
            Gdx.input.getY() >= yMinima && Gdx.input.getY() <= yMaxima;
}

xMaxima,Xminima, Yminima ,YMaxima son de tipo float.

Preguntado por: Ramosaurio

Jorgesys

La opción más común es implementar InputProcessor y médiante el método TouchDown() podrías detectar cuando la pantalla o tu caso, un botón es presionado.

https://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/InputProcessor.html

public class MyInputProcessor implements InputProcessor {

...

   @Override
   public boolean touchDown (int x, int y, int pointer, int button) {
      return false;
   }

...

}

En el caso de tu implementación podrías usar simplemente:

public boolean sePulsaElBoton() {
    return Gdx.input.isTouched();
}

o JustTouched :

public boolean sePulsaElBoton() {
    return Gdx.input.justTouched();
}

Usa Gdx.input.justTouched();

Gdx.input.isTouched() notifica si has tocado o estas tocando la pantalla, así que si tardas 2 segundos pulsando el botón, imprimira por pantalla(en tu caso) tantos mensajes como pueda en ese tiempo.

Esta pregunta es vieja pero, si el botón es un Actor como lo son las clases TextButton,Button,Table,Image y otras, le puedes añadir un EventListener y listo

button.addListener(new ClickListener(){
    @Override
    public void clicked(InputEvent event, float x, float y) {
        super.clicked(event, x, y);
        System.out.println("Este botón se pulso!");
    }
});

Tienes mucho más control, sin necesidad de programarlo tu mismo.

Puedes “Override” muchos metodos…

introducir la descripción de la imagen aquí

Los mas que personalmente uso son:

  • InputListener : lo uso cuando quiero detectar cuando se esta pulsando y cuando se deja de pulsar, pero tiene mucho más metodos para “Override”.

  • ClickListener : lo uso cuando quiero detectar solo un
    pulsaso, igual tiene mucho más metodos para “Override”

  • ActorGestureListener : lo uso cuando quiero detectar un “Long press”
    que es cuando alguien pulsa y deja pulsado un botón por mas de 1~
    segundo

Aqui una lista de todos los EventListeners:

  • InputListener

  • ClickListener

  • ActorGestureListener

  • ChangeListener

  • DragListener

  • DragScrollListener

  • FocusListener

  • TextArea.TextAreaListener

  • TextField.TextFieldClickListener

  • TextTooltip

  • Tooltip

Fuente

Related Posts:

Girar Rectángulo con LibGDX – android libgdx
Pregunta: Estoy haciendo un programilla de prueba que se compone de : 4 botones , arriba, abajo, izquierda y derecha. Una nave espacial, formada por un ...
¿Location manager Android? Experiencias – android mysql android-studio
Pregunta: He desarrollado una aplicación Gps que envía información a Mysql cada 10 seg atraves de locationmanager. ¿Según su experiencia hasta cuanto es posible disminuir ...
Crear cuenta regresiva N segundos mientras se visualiza una Activity en Android – java android
Pregunta: Quiero implementar una cuenta regresiva de N segundos, que se inicie cuando la Activity se muestre, se pare el contador cuando el usuario decide ...
Crear prototipos para aplicaciones Android – android prototipos
Pregunta: estoy interesado en optar por una herramienta que me sea bastante util para poder realizar prototipos de aplicaciones móviles, especificamente para Android. Empece buscando ...
¿Como Se Instala Un Apk Y Como Se Ve Despues? – android
Pregunta: Tengo una duda sobre que pasa con ese archivo apk una vez instalado si se queda como uno solo o se separa en fragmentos ...
¿Como usar la clase Intent para mostrar las apps del usuario – android android-intent
Pregunta: Quiero que mi app muestre las aplicaciones del usuario en un ListView. He tratado de investigar y me salio en ingles la mención a esta ...
Calcular distancia entre dos coordenadas android – android
Pregunta: quisiera saber como puedo hallar la distancia entre 2 coordenadas en kilómetros en trayecto vía automóvil, estoy usando la API de google maps. Agradezco cualquier ...
¿Cómo puedo crear una aplicación Android que no se pueda cerrar así como WhatsApp? – android android
Pregunta: Esta pregunta ya tiene una respuesta aquí: ...
Spinner y EditText – java android
Pregunta: Tengo este código para cargar un spinner con datos de una base de datos: private class Getfrutas extends AsyncTask<Void, Void, Void> { ...
Crear listview en un Fragment en android – android
Pregunta: Estoy creando una aplicación en la cual incluyo un listview, en un Fragment. Dicho listview ya lo había ejecutado en un activity normal y ...
¿ Por qué se me detiene la aplicación al usar este pequeño código? – java android bottombar
Pregunta: Tengo un bottomBar donde tengo 5 opciones, la última es la del mapa de google API. Mi problema es que al hacer click en ...
¿ Cómo implemento este código para android 6.0? – java android
Pregunta: Tengo en un Fragment implementado el Google API y FUNCIONA. Pero funciona en mis 3 móviles que son jellybean, kitkat y lollipop. El ...
¿Cómo guardar un ImageView en Android? – java android
Pregunta: Mi aplicación está compuesta por un botón y un ImageView y cuando se aprieta el botón la ImageView recibe una imagen que tengo en ...
¿Como Se Puede Almacenar Una Imagen En Una Base De Datos SqlLite? – android
Pregunta: Quiero saber si es posible almacenar una imagen en una base de datos Sql Lite. Gracias. Preguntado por: PowerApp La imagen se guardaría ...
Como usar windowSoftInputMode=“adjustNothing” – android android-layout
Pregunta: Buenas, tengo un layout para una actividad en el cual cuando voy a utilizar el teclado android este oculta algunos views, he estado buscando ...

Add a Comment

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