LibGDX - 跟踪触摸点击事件
LibGDX - track tap event on touch
我是 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都切换不了;
您可以使用 InputProcessor class 并通过 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;
}
}));
这些行应该出现在构造函数或显示方法中。
我是 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都切换不了;
您可以使用 InputProcessor class 并通过 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;
}
}));
这些行应该出现在构造函数或显示方法中。