我用LibGDX
创建了一个2D安卓游戏,我使用正射相机在世界各地移动。LibGDX:用触摸移动相机
为了移动相机,玩家应该触摸并拖动屏幕。所以如果你触摸屏幕并向右拖动,相机应该向左移动。所以它应该像移动画廊中缩放图片的部分一样。我希望你跟着我。
这是代码:
public class CameraTestMain extends ApplicationAdapter {
SpriteBatch batch;
Texture img;
OrthographicCamera camera;
@Override
public void create() {
batch = new SpriteBatch();
img = new Texture("badlogic.jpg");
camera = new OrthographicCamera(1280, 720);
camera.update();
}
@Override
public void render() {
Gdx.gl.glClearColor(1, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
handleInput();
camera.update();
batch.setProjectionMatrix(camera.combined);
batch.begin();
batch.draw(img, 0, 0);
batch.end();
}
public void handleInput() {
// That is my problem
}
}
我不知道该怎么在handleInput()
方法写。我知道有一个名为InputProcessor
的界面,方法为touchDragged(int x, int y, int pointer)
,您可以在其中处理触摸拖动,但我不知道如何使用它。
感谢您的想法和您的帮助。
@ erik4thewinners接受这个答案,如果它帮助你并考虑upvoting它,因为我认为这是一个很好的答案。 – Madmenyo
screenX和screenY参数是绝对值。 – Winter
这个答案是错误的,因为'camera.position.set(camera.position.x + screenX,camera.position。y + screenY);'由于screenX和screenY返回鼠标在屏幕上的位置,所以发送相机飞行...而不是screenX,应该放入某种“X中的变化”,并且相同的Y .. 。 – Sierox