我有一个 Actor 在舞台上,虽然被击中,并且被称为触地得分,但没有被称为触地得分和触地得分。有什么问题吗?
............
stage = new Stage(0, 0, true);
Gdx.input.setInputProcessor(stage);
...........
@Override
public Actor hit(float arg_x, float arg_y) {
if ((arg_x > this.location.x) && (arg_x < (this.location.x + 40)) && (arg_y > this.location.y) && (arg_y < (this.location.y + 40))) {
Gdx.app.log("Tile", "hit char = " + this.GetLetter());
return this;
}
return null;
}
@Override
public boolean touchDown(float arg_x, float arg_y, int arg2) {
Gdx.app.log("Tile", "down char = " + this.GetLetter());
return false;
}
@Override
public void touchDragged(float arg_x, float arg_y, int arg2) {
Gdx.app.log("Tile", "tile dragged");
}
@Override
public void touchUp(float arg_x, float arg_y, int arg2) {
Gdx.app.log("Tile", "touchUp");
}
最佳答案
我在另一个论坛上找到了答案。
public boolean touchDown(float arg_x, float arg_y, int arg2) {
Gdx.app.log("Tile", "down char = " + this.GetLetter());
return false;
}
应该是
public boolean touchDown(float arg_x, float arg_y, int arg2) {
Gdx.app.log("Tile", "down char = " + this.GetLetter());
return true;
}
也就是说,它应该返回 true
而不是 false
。然后其他方法将在适当的时候被调用。
关于java - libgdx touchup 和 touchdragged 没有被调用,但是 touchdown 是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9856291/