gpt4 book ai didi

java - 如何创建一个内部包含多个多边形可绘制对象的按钮(在 LibGDX 中)

转载 作者:行者123 更新时间:2023-11-30 06:26:05 25 4
gpt4 key购买 nike

有没有一些简单的方法来创建 ButtonLibGDX 中,其中包含多个多边形可绘制对象。

例如,当简单的Button时可以如图: simple button

以及像这样的高级预期按钮:

advanced button

就我而言,必须满足以下条件:

  1. 对象必须扩展 Button类。
  2. 分离的多边形(图中的圆形和三角形)必须具有一种共同的行为 - 相同的向上、向下、悬停样式、相同的点击监听器等。 (例如,当用户将鼠标悬停在圆圈上时,三角形和圆圈的颜色会变为绿色)

实际上它必须具有与具有一个多边形的按钮完全相同的行为,只需想象圆形和三角形是一个多边形,而不是分开的多边形。

我想到的一种方法是扩展 PolygonRegionDrawable ,但为了使其正确绘制,我需要重写 Drawable 中的几乎所有方法和 TransformDrawable ,有没有更简单的方法?

也许可以找到一些 DrawableGroup 或类似的东西?

最佳答案

我认为没有一种简单的方法可以完成这项工作,这里有一些选择。

Button 是一个Table,您可以向其中添加内容。

Button button = new Button(skin);
Image img = new Image(...); // insert polygon 1 here
img.setPostion(...); // offset so its in correct position in the button
button.addActor(img);
// add more stuff

遗憾的是,这不能处理各种状态更改,例如结束等。您需要跟踪添加的内容并随着按钮更改而更改它们。

另一个选项是将多边形制作成单个图像。这非常棘手,您需要将它们绘制到 FrameBufferObject 的正确位置并从中制作纹理。然后将该纹理用于 Drawable 作为按钮样式。对您要处理的每个状态重复此操作。出于性能原因,将它们打包到 atlas 中将是最佳选择。大量的纹理切换并不好。

关于java - 如何创建一个内部包含多个多边形可绘制对象的按钮(在 LibGDX 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47185402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com