Libgdx |场景2d |单击不可见按钮时,touchDown 输入处理器方法未触发
Libgdx | Scene2d | touchDown input processor method not firing when clicking invisible button
我创建了一个重启按钮,然后将其添加到 table。当我将 table 设置为不可见,并单击重新启动按钮所在的位置(现在不可见)时,我的播放器 class 中的 touchDown InputProcessor 甚至不会触发。但是,当我点击其他地方时,它确实会触发玩家触地得分。尽管此按钮不可见,但不知何故会产生干扰。一些额外信息:
-我的按钮是自定义的class,我会在下面放代码
-重新启动按钮有一个 clickListener,但是,删除它并不能解决问题
- table 在单独的舞台和视口上,然后是玩家
CustomButton 代码(用于重启按钮):
class CustomDrawable implements Drawable {
private Sprite sprite;
private Actor actor;
public CustomDrawable(Actor actor, Sprite sprite) {
this.actor = actor;
this.sprite = sprite;
}
@Override
public void draw(Batch batch, float x, float y, float width, float height) {
sprite.setPosition(x, y);
sprite.setSize(width, height);
sprite.setColor(actor.getColor());
sprite.draw(batch);
}
}
在重新启动按钮不可见时调用 setTouchable(Touchable.disabled)
。 (并在使其可见时启用它。)
我创建了一个重启按钮,然后将其添加到 table。当我将 table 设置为不可见,并单击重新启动按钮所在的位置(现在不可见)时,我的播放器 class 中的 touchDown InputProcessor 甚至不会触发。但是,当我点击其他地方时,它确实会触发玩家触地得分。尽管此按钮不可见,但不知何故会产生干扰。一些额外信息:
-我的按钮是自定义的class,我会在下面放代码
-重新启动按钮有一个 clickListener,但是,删除它并不能解决问题
- table 在单独的舞台和视口上,然后是玩家
CustomButton 代码(用于重启按钮):
class CustomDrawable implements Drawable {
private Sprite sprite;
private Actor actor;
public CustomDrawable(Actor actor, Sprite sprite) {
this.actor = actor;
this.sprite = sprite;
}
@Override
public void draw(Batch batch, float x, float y, float width, float height) {
sprite.setPosition(x, y);
sprite.setSize(width, height);
sprite.setColor(actor.getColor());
sprite.draw(batch);
}
}
在重新启动按钮不可见时调用 setTouchable(Touchable.disabled)
。 (并在使其可见时启用它。)