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