Sono nuovo in libgdx. Ho il seguente problema. Voglio pizzicare lo zoom per il mio gioco. Per questo ho classe GestureDetectorListener
nel mio GameStage
.GestureDetector in libgdx
In GameStage
ho il seguente codice per 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;
}
}
Inoltre ho impostato InputListener
per gli attori della mia fase, al fine di trascinarli. Il problema è che, quando imposto InputProcessor
su GestureDetector
, il trascinamento dei miei attori non funziona. Voglio avere uno zoom pizzico con la fotocamera e GestureDetector
, ma non avrà alcuna influenza sul trascinamento. Come lo posso fare?
Qualsiasi aiuto per favore! Grazie.
Grazie! Hai ragione. "return true" era il problema. E ora il trascinamento e lo zoom stanno funzionando. Ma voglio che lo zoom non influenzi l'intero palcoscenico, ma su qualche contenitore. Immagino di non poter usare la fotocamera, perché la fotocamera è impostata per l'intero palcoscenico. – Karmar
Cosa ne pensi? Posso impostare la fotocamera per alcuni contenitori, non per l'intera fase? Grazie. – Karmar
Correggere, cambiando la telecamera cambia il modo in cui lo spazio del tuo modello è mappato a tutto lo schermo, quindi non è proprio la cosa giusta per lo zoom di un solo contenitore. –