Ich bin neu in libgdx. Ich habe folgendes Problem. Ich möchte das Zoomen für mein Spiel machen. Dafür habe ich GestureDetectorListener
Klasse in meinem GameStage
.GestureDetector in libgdx
In GameStage
Ich habe den folgenden Code für 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;
}
}
Auch habe ich gesetzt InputListener
für die Schauspieler meiner Bühne, um sie zu ziehen. Das Problem ist, dass, wenn ich InputProcessor
zu GestureDetector
setze, das Ziehen meiner Schauspieler nicht funktioniert. Ich möchte eine Prise Zoomen mit Kamera und GestureDetector
, aber es hat keinen Einfluss auf das Ziehen. Wie kann ich das machen?
Jede Hilfe bitte! Danke.
Danke! Du hast recht. "Rückkehr wahr" war das Problem. Und jetzt funktioniert das Ziehen und Zoomen. Aber ich möchte, dass das Zoomen nicht die gesamte Bühne beeinflusst, sondern nur einige Container. Ich denke, ich kann die Kamera nicht benutzen, weil die Kamera für die ganze Bühne eingestellt ist. – Karmar
Was denkst du darüber? Kann ich die Kamera für einen Container einstellen, nicht für die gesamte Bühne? Vielen Dank. – Karmar
Korrekt, wenn Sie die Kamera ändern, ändert sich die Zuordnung Ihres Modellbereichs zum gesamten Bildschirm. Daher ist es nicht ganz richtig, nur einen Container zu zoomen. –