我对LibGDX比较陌生,遇到了一些错误的情况。 我正在创建一个2D游戏,并且当我点击矩形时想要打开和关闭我的声音效果。
private boolean soundOn = true;
private Rectangle soundRect;
private Vector2 touchPoint;
public Constructor(){
soundRect = new Rectangle();
touchPoint = new Vector2(0, 0);
}
public void update(float delta){
if (Gdx.input.isTouched()) {
touchPoint = new Vector2(Gdx.input.getX(), Gdx.input.getY());
soundRect = new Rectangle(83, 0, 78, 63);
if (soundRect.contains(touchPoint)) {
soundOn = false;
}
}
}
我也尝试过这种方法,但它似乎也没有用。
if (Gdx.input.isTouched()) {
touchPoint.set(Gdx.input.getX(), Gdx.input.getY());
if ((touchPoint.x >= soundRect.x) &&
(touchPoint.y >= soundRect.y) &&
(touchPoint.x <= soundRect.x + soundRect.width)&& (touchPoint.y <= soundRect.y + soundRect.height)) {
Gdx.app.log("sound", "toggles");
soundOn = false;
}
}
我知道代码没有完成,它应该能够切换回true,但是现在它甚至没有切换为false;
答案 0 :(得分:0)
您可以使用实现InputProcessor类并通过Gdx.input.setInputProcessor()
或者您应该使用GestureAdapter
跟踪水龙头移动Gdx.input.setInputProcessor(new GestureDetector(new GestureAdapter(){
@Override
public boolean tap(float x, float y, int count, int button) {
//here you can write code for touch event.
return true;
}
}));
这些行应该存在于构造函数或show方法中。