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