I have an actor on a stage and though hit, and touchdown are being called, touchup and touchdragged aren't. Any ideas on what is wrong?
............
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");
}
I found the answer on another forum.
public boolean touchDown(float arg_x, float arg_y, int arg2) {
Gdx.app.log("Tile", "down char = " + this.GetLetter());
return false;
}
should be
public boolean touchDown(float arg_x, float arg_y, int arg2) {
Gdx.app.log("Tile", "down char = " + this.GetLetter());
return true;
}
that is, it should return true
rather than false
. then the other methods will be called at the appropriate times.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With