0
我正在嘗試用libgdx移動一個矩形與我的手指,但是當我在我的手機上運行代碼它不起作用,矩形停留在左上角。任何想法如何解決這個問題?LibGDX:如何用手指移動矩形?
public class Main extends ApplicationAdapter implements InputProcessor {
ShapeRenderer shape;
public int xpos;
public int ypos;
@Override
public void create() {
shape = new ShapeRenderer();
}
@Override
public void render() {
Gdx.gl.glClearColor(0, 255, 255, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
shape.begin(ShapeType.Filled);
shape.setColor(1, 1, 0, 1);
shape.rect(xpos, ypos, 100, 100);
shape.end();
}
@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
xpos = Gdx.input.getX();
ypos = Gdx.input.getY();
return true;
}
@Override
public boolean touchUp(int screenX, int screenY, int pointer, int button) {
xpos = Gdx.input.getX();
ypos = Gdx.input.getY();
return true;
}
@Override
public boolean touchDragged(int screenX, int screenY, int pointer) {
xpos = Gdx.input.getX();
ypos = Gdx.input.getY();
return true;
}
我也實施了InputProcessor
接口的所有其他方法,給他們一個return false
聲明。但就像我說的這是行不通的...
不要忘記調用'Gdx.input.setInputProcessor(this);'。 – Tenfour04 2015-02-07 17:02:43
給我們更多的信息。你從InputProcessor實現的方法是否被調用? – MilanG 2015-02-07 19:51:57
我已經通過刪除所有輸入處理器stuft並通過將這個if語句添加到render中來實現它的工作方法:if(Gdx.isTouched(){xpos = Gdx.input.getX()並且與ypos和那麼你只需添加ypos = height - ypos或類似的東西我沒有記住代碼,但這對我有用,但是謝謝你的努力 – 2015-02-07 21:42:14