java - 使用计时器使图像淡入和淡出

标签 java timer fade

所以我对游戏做了这样的介绍,我想让几个小图像 Logo 淡入然后淡出,但到目前为止我尝试过的所有内容要么在后台保持无限循环,要么在有时,它无法正确执行,或者淡入但不淡出。非常感谢您的帮助。 我也一直在使用 getAlpha() setAlpha() 方法。

timer.schedule(new TimerTask() 
    {
        @Override
        public void run() 
        {
            {

                if(opening1.getAlpha() <1)
                {
                System.out.println(opening1.getAlpha());
                opening1.setAlpha((float) (opening1.getAlpha() + 0.00005));
                }
                else
                {
                    timer.purge();
                }
            }
        }

    },1*1,100);
    }

最佳答案

您是否尝试过使用 java.lang.Math 类。我建议使用“exp(double a)”方法。 与 System.currentTimeMillis() 或 System.nanoTime() 配合使用,您可以在循环内调用它,并且它“返回欧拉数 e 的 double 值次方。”

指数函数自然增长缓慢,因此我会使用某个常数的倍数来控制函数增长的速度。显然,您只需获取从该函数获得的值并在 setAlpha() 方法中使用它即可。

我在编写游戏时一直使用数学类。另一个有用的方法是 sin() 和 cos() 方法。

为了改进这种方法,我会在循环之前设置一个初始时间,比如 0,然后在循环的每次迭代中添加当前系统时间。

关于java - 使用计时器使图像淡入和淡出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26613439/

相关文章:

java - 如何安排任务定期运行?

jquery - 如何淡入淡出显示: inline-block

jquery 2同时淡出完成

java - 将公共(public) Maven 存储库用于库而不是本地的优点

java - ANTLR 努力解析整数与引用字符串

java - JAXB和Hibernate3非法访问的问题

python:如何在多线程中发送数据包然后线程自行终止

php - 设置基于 PHP 定时器的函数

javascript - jQuery 图像翻转淡入淡出

java - 如何为Java编写conf文件?