Je suis nouveau dans libgdx. J'ai le problème suivant. Je veux faire un zoom pincement pour mon jeu. Pour cela j'ai GestureDetectorListener
classe dans mon GameStage
.GestureDetector dans libgdx
En GameStage
j'ai le code suivant pour GestureDetector
:
OrthographicCamera camera = new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
this.setCamera(camera);
GestureDetector gestureDetector = new GestureDetector(20, 0.5f, 2, 0.15f, new GestureDetectorListener());
Gdx.input.setInputProcessor(gestureDetector);
class GestureDetectorListener implements GestureListener {
float initialScale = 1;
@Override
public boolean touchDown(float x, float y, int pointer, int button) {
initialScale = camera.zoom;
return true;
}
@Override
public boolean tap(float x, float y, int count, int button) {
// TODO Auto-generated method stub
return true;
}
@Override
public boolean longPress(float x, float y) {
// TODO Auto-generated method stub
return true;
}
@Override
public boolean fling(float velocityX, float velocityY, int button) {
// TODO Auto-generated method stub
return true;
}
@Override
public boolean pan(float x, float y, float deltaX, float deltaY) {
return true;
}
@Override
public boolean zoom(float initialDistance, float distance) {
float ratio = initialDistance/distance;
camera.zoom = initialScale * ratio;
return true;
}
@Override
public boolean pinch(Vector2 initialPointer1, Vector2 initialPointer2,
Vector2 pointer1, Vector2 pointer2) {
// TODO Auto-generated method stub
return true;
}
}
J'ai aussi mis InputListener
pour les acteurs de ma scène, afin de les faire glisser. Le problème est que, lorsque je mets InputProcessor
à GestureDetector
, le glisser de mes Actors ne fonctionne pas. Je veux avoir un pincement avec l'appareil photo et GestureDetector
, mais cela n'aura aucune influence sur le glissement. Comment puis je faire ça?
Toute aide s'il vous plaît! Merci.
Merci! Tu as raison. "return true" était le problème. Et maintenant, le glisser et le zoom fonctionnent. Mais je veux que le zoom affecte pas toute la scène, mais sur un conteneur. Je suppose que je ne peux pas utiliser d'appareil photo, car la caméra est réglée pour toute la scène. – Karmar
Qu'est-ce que vous en pensez? Puis-je définir l'appareil photo pour un conteneur, pas toute la scène? Merci. – Karmar
Correct, en changeant la caméra change la façon dont votre espace de modèle est mappé à l'écran entier, ce n'est donc pas la bonne chose pour zoomer un seul conteneur. –