我是libgdx中的新手。我有以下問題。我想爲我的比賽做縮放。爲此,我在GameStage
中有GestureDetectorListener
班。libgdx中的手勢檢測器
在GameStage
我有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
爲我的舞臺的演員,才能拖動。問題是,當我將InputProcessor
設置爲GestureDetector
時,我的Actors拖動不起作用。我想用相機縮放,GestureDetector
,但它不會對拖動造成影響。我怎樣才能做到這一點?
請任何幫助! 謝謝。
謝謝!你是對的。 「返回真實」是問題所在。現在拖動和縮放工作。但我希望縮放不是影響整個舞臺,而是影響一些容器。我想我不能使用相機,因爲相機設置爲整個舞臺。 – Karmar 2013-02-13 08:13:18
你在想什麼?我可以將相機設置爲某個容器,而不是整個舞臺嗎?謝謝。 – Karmar 2013-02-13 08:21:39
正確,改變相機改變了你的模型空間映射到整個屏幕的方式,所以它不太適合放大一個容器。 – 2013-02-13 16:56:06