libgdx에서 새로 생겼습니다. 나는 다음과 같은 문제가있다. 내 게임을 대충 확대하고 싶습니다. 그 때문에 내 GameStage
에 GestureDetectorListener
클래스가 있습니다. libgdx의 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;
}
}
은 또한 내가 그들을 끌어하기 위해, 내 무대의 배우에 대한
InputListener
을 설정 한 :
GameStage
에서
나는 GestureDetector
에 대한 다음과 같은 코드가 있습니다. 문제는 InputProcessor
을 GestureDetector
으로 설정하면 액터 드래그가 작동하지 않는다는 것입니다. 카메라를 사용하여 핀치 확대/축소 및 GestureDetector
을 갖고 싶지만 드래그하는 데 영향을 미치지 않습니다. 어떻게해야합니까?
도움주세요. 감사합니다. .
고마워요! 당신 말이 맞아요. "return true"가 문제였습니다. 이제 드래그하고 확대/축소가 작동합니다. 그러나 줌이 전체 스테이지가 아니라 일부 컨테이너에 영향을 주길 바랍니다. 나는 카메라를 사용할 수 없다고 생각한다. 카메라가 전체 무대에 설정되어 있기 때문이다. – Karmar
그것에 대해 어떻게 생각하세요? 전체 무대가 아닌 일부 컨테이너 용으로 카메라를 설정할 수 있습니까? 감사. – Karmar
맞습니다. 카메라를 변경하면 모델 공간이 전체 화면에 매핑되는 방식이 바뀌므로 하나의 컨테이너 만 확대하는 것은 적절하지 않습니다. –