我是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