2012-02-10 3 views
3

J'utilise "Gdx.input.isTouched()" dans la méthode render de ma méthode Screen, pour savoir où est touché, mais quand le toucher est déplacé dans l'écran, il active aussi les évènements que je veux seulement quand un acteur est touché.Comment détecter lorsqu'un acteur est touché dans libgdx?

Y at-il un auditeur à savoir quand un acteur est touché, mais l'événement n'est pas celui qui est traîné, je le fais avec les sprites.

Répondre

10

Voir cette page wiki à propos de scene2d dans LibGDX. Plus précisément la partie sur la gestion des entrées.

Fondamentalement, vous devez remplacer une ou plusieurs de ces méthodes dans votre Acteur:

public boolean touchDown (float x, float y, int pointer) { 
    return false; 
} 

public void touchUp (float x, float y, int pointer) { 
} 

public void touchDragged (float x, float y, int pointer) { 
} 

public boolean touchMoved (float x, float y) { 
    return false; 
} 

public boolean scrolled (int amount) { 
    return false; 
} 

public boolean keyDown (int keycode) { 
    return false; 
} 

public boolean keyUp (int keycode) { 
    return false; 
} 

public boolean keyTyped (char character) { 
    return false; 
} 
+5

Désolé pour le commentaire obsolète, mais ces méthodes sont-elles supprimées de la version actuelle d'Actor? Il semble qu'ils ont disparu. – iozee

+2

Le wiki Libgdx contient des informations à jour sur la gestion des événements. Voir http://code.google.com/p/libgdx/wiki/scene2d#Event_system – Ludevik

0

Je pense que vous devez mettre en œuvre l'une des méthodes suivantes pour détecter uniquement tactile seule fois pas l'événement move effectuer le utilisateur.

Gdx.input.justTouched(); 
1

dans libGDX Actor avez un écouteur à l'intérieur. Exemple si vous voulez vérifier quand un bouton est pressé, ou est de vérifier, vous appelez: button.isPressed(), button.isCheck(), il renvoie booléen.

0

Je pense que vous contrôlez dans Stage lorsque vous avez plusieurs acteurs.

Questions connexes