最大化窗口或调整大小时单击监听器不起作用(LibGDX)

时间:2017-05-03 23:03:06

标签: java android libgdx

我正在尝试使用libgdx库,制作一个菜单,将我移动到不同的屏幕。我使用LwjglApplication创建一个小应用程序。当窗口的大小最小化时,Click事件可以正常工作,但在最大化时,事件将停止工作。

示例:

这里,ClickListener可以正常工作 enter image description here

这里...... ClickListener停止工作...... enter image description here

菜单代码:

{{1}}

1 个答案:

答案 0 :(得分:2)

您需要更新舞台视口。

@Override
public void resize(int width, int height) {
    stage.getViewport().update(width,height);
}

当您使用Actor setFontScale(scale);时,触摸点位于Label范围内时触摸/点击检测到,它仅更改了字体大小而不是Actor边界,因此您应该设置Label的大小。您可以使用container作为该Label的父级,并根据您的要求缩放容器,而不是缩放字体。

您可以使用stage.setDebugAll(true);进行调试,并查看所有Actor边界。

默认情况下,阶段使用StretchViewport的构造函数,屏幕宽度和高度为视口worldwidth和worldheight。 StretchViewport缩放源以填充目标,这可能导致源不保持相同的宽高比,因此对于具有预定义的worldwidth和viewport的世界高度的其他视口,它会更好。我建议使用ExtendViewport因为它在大多数情况下满足了我们的要求。