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:

Push notifications to devices and browsers via Pushbullet
...
Send messages to mobile devices with Google Firebase.
...
A PHP library for easy PushOver service use: send real-time notifications to your Android and iOS devices.
...
A simple PHP library for the Pushover service
...
Google Cloud Messaging (GCM) PHP Server Library
...
Read basic info about an application from .apk file.
...
A PHP library for sending GCM messages
...
A Bundle for Symfony2 projects to send notifications in mobile devices through Firebase Cloud Messaging API
...
PHP API for Firebase Cloud Messaging from Google
...
PHP application server for google firebase cloud messaging (FCM)
...
Standalone PHP library for easy devices notifications push.
...
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 ...

Add a Comment

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