对于我们使用libgdx开发的游戏,我们需要向用户显示进行移动的剩余时间。
我们如何渲染显示剩余秒数的圆形进度条?

在以下答案中,有一个javascript解决方案:
Circular / radial progress bar

谢谢。

最佳答案

首先使用完整的圆形进度条创建一个纹理(区域)。接下来,将由一个或多个三角形组成的形状(网格)变形,以适合应显示的实际区域。

为此,考虑一条从图像中心到图像边界的线。计算给定角度的直线的交点(和“墙”,即图像的左,右,上或下)。这将为您提供需要绘制的纹理(区域)部分。

例如,如果静止的线(角度为零)与图像的底壁在中间相交,则图像为正方形,并且您想顺时针旋转,则介于45度和135度之间的所有点都将到达左侧,介于135度和225度撞击顶墙,依此类推。

现在您有了形状,您需要将其表示为三角形。或者保持与libgdx的spritebatch(偶数个三角形)的兼容性。确保根据顶点位置更新U和V值。

一个简单的实现可以在这里找到:https://github.com/xoppa/world/blob/master/src/com/xoppa/android/misc/RadialSprite.java

关于libgdx - 如何在Libgdx中渲染圆形/径向进度条?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17981852/

10-13 02:21