У меня есть кнопка в центре моей сцены, и я хочу масштабировать ее из центра, как только пользователь начнет нажимать на нее, а затем сбросить масштаб, как только он отпустит палец.
Это код, который я использую:
private int size;
private Texture texture;
private Action scaleAction, scaleDownAction;
public PlayButtonActor(int x, int y, int size) {
this.size = size;
setBounds(x, y, size, size);
this.texture = new Texture("data/play_button.png");
this.setTouchable(Touchable.enabled);
setOrigin(size / 2, size / 2);
final float finalSize = size;
addListener(new InputListener() {
@Override
public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
event.handle();
removeAction(scaleAction);
scaleDownAction = Actions.parallel(
Actions.scaleTo(1f, 1f, 0.1f)
);
addAction(scaleDownAction);
}
@Override
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
removeAction(scaleDownAction);
scaleAction = Actions.parallel(
Actions.scaleTo(1.4f, 1.4f, 0.2f)
);
addAction(scaleAction);
return true;
}
});
}
@Override
public void draw(Batch batch, float parentAlpha) {
final float realSize = this.getScaleX() * size;
batch.draw(this.texture, this.getX() - realSize / 2, this.getY() - realSize / 2, realSize, realSize);
}
Это работает при успешном масштабировании кнопки, однако кликабелен только верхний правый сектор кнопки.
Как я могу сделать так, чтобы кнопка масштабировалась из / в центр, в то время как границы ее все еще правильные?
Заранее спасибо!