所以我对游戏做了这样的介绍,我想让几个小图像 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/