user194625 Asked:2020-12-09 23:43:10 +0000 UTC2020-12-09 23:43:10 +0000 UTC 2020-12-09 23:43:10 +0000 UTC libgdx - 如何制作带有文本的按钮? 772 你好。我怎样才能制作一个按钮libgdx?没有任何皮肤。有一种字体 (.png + .ftn)。我愿意Rectangle并且想在其中添加文字。字体加载在BitmapFont. libgdx 1 个回答 Voted Best Answer Konstantin 2020-12-13T21:56:33Z2020-12-13T21:56:33Z 是的,libgdx 皮肤是一个完整的伏击。我没有找到带有俄文字母的皮肤。手工绘制它们非常麻烦。以下是我实际使用的 3 个选项: 我们从场景 2D 中获取图像而不是按钮。您可以将 clickListener 侦听器附加到图像。文本也有 2 个选项:要么已经在图片中,要么我们使用 BitmapFont 通过 SpriteBatch 将其显示在按钮的顶部。 我们仍然采用 Button 或 TextButton(但不设置文本)。与 Image 相比的优势至少是一些点击动画。对于所需的文本,创建一个 glyphLayout。由于这个,我们知道文本的宽度和高度。我们让按钮更高一点,更宽一点。我们还通过 bitmapfont.draw 在按钮上显示文本。 在这两种情况下,您仍然需要固定默认的英文皮肤。 如果您根本不需要皮肤,那就意味着根本不需要小部件。然后 我们把 Texture 当作一个按钮。好吧,或者如果你想要一个带动画的按钮,那么 TextureRegion。创建一个与我们的纹理具有相同尺寸的矩形。Rectangle 类有一个包含方法。这是针对点击监听器的。为触摸坐标创建 Vector3 类的 touchPosition。我们在渲染体中监听点击: if (Gdx.input.isTouched()){ touchPosition.set(Gdx.input.getX(), Gdx.input.getY(), 0); if (rectangle.contains(touchPosition.x, touchPosition.y){ ... 这里是按下按钮后的所有内容 } } 文本也使用 bitmapfont.draw 显示。
是的,libgdx 皮肤是一个完整的伏击。我没有找到带有俄文字母的皮肤。手工绘制它们非常麻烦。以下是我实际使用的 3 个选项:
我们从场景 2D 中获取图像而不是按钮。您可以将 clickListener 侦听器附加到图像。文本也有 2 个选项:要么已经在图片中,要么我们使用 BitmapFont 通过 SpriteBatch 将其显示在按钮的顶部。
我们仍然采用 Button 或 TextButton(但不设置文本)。与 Image 相比的优势至少是一些点击动画。对于所需的文本,创建一个 glyphLayout。由于这个,我们知道文本的宽度和高度。我们让按钮更高一点,更宽一点。我们还通过 bitmapfont.draw 在按钮上显示文本。
在这两种情况下,您仍然需要固定默认的英文皮肤。
如果您根本不需要皮肤,那就意味着根本不需要小部件。然后