java - 在 Java 进度条中实现平滑过渡

标签 java opengl

我已经成功地编写了自己的进度条,进度条根据变化的百分比值进行视觉更新。但是,我目前面临进度条不同阶段之间突然跳跃的问题。我希望在这些阶段之间实现平稳过渡。

以下是一些其他详细信息:我可以访问游戏的 FPS 计数,以及进度条的位置和比例。我选择的编程语言是 Java。

我的问题是:根据可用信息,如何在进度条的各个阶段之间实现平滑过渡?

任何有关实现平稳过渡的建议或指导将不胜感激。谢谢!

最佳答案

一般性答案,不特定于语言。

您可以增加每个框架的宽度,直到达到所需的宽度/百分比,而不是直接设置宽度。

假设您有函数 bar.setWidth(val) 来设置进度条的宽度。

让它成为您的更新循环(以 60FPS 运行):

update {
   ...
   ...

   double percentageLoaded; // this is your parameter probably

   static const int incrementStep = 1; // increase this for faster animation

   // Get the width of the bar for the current percentage   
   int desiredWidth = percentageLoaded * bar.totalWidth;


   if(bar.currentWidth < desiredWidth) {
      bar.currentWidth += incrementStep;
   }
}

如果你的incrementStep大于1,你还需要检查一些事情。(例​​如:不要将条形宽度设置为大于100%)

这是一张小图,也许可以帮助您更好地理解。在此示例中,增量步长为 1px,条形宽度为 4px,加载设置为 50% 完成,这意味着您的条形宽度应为 2pxenter image description here

关于java - 在 Java 进度条中实现平滑过渡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38945639/

相关文章:

java - 流损坏异常 : invalid type code: 01 in Client Server connection

java - SQLite , Derby 与文件系统

c++ - 在没有着色器的情况下在 OpenGL 中渲染深度缓冲区

c++ - 在 Ubuntu 终端中编译时 OpenGL 引用的问题

c++ - 代码:: block linux glext.h "reference to uint64_t is ambiguous"

c++ - 在 Qt 5.x 中使用 GLEW

java - 引导 PropertySource 排序

java 使用 APACHE POI 在 powerpoint 中创建图表

java - 如何检索与某个键关联的所有值?

c++ - 绘制一个简单的二维矩形网格