LibGDX:如何用手指移动矩形?
问题描述:
我正在尝试用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
声明。但就像我说的这是行不通的...
答
if(Gdx.input.isTouched() &&rectangle.contains(Gdx.input.getX(),Gdx.graphics.getHeight() -Gdx.input.getY())) {
rectangle.set(Gdx.input.getX(), Gdx.graphics.getHeight() - Gdx.input.getY(), 200, 100);
}
else {
rectangle.set(rectangle.x, rectangle.y, 200, 100);
}
+0
欢迎使用StackOverflow。请从代码中删除额外的缩进以使其更具可读性。最好的祝福 – YakovL 2017-08-23 07:14:13
不要忘记调用'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