优雅地上下计数

时间:2009-09-20 22:01:04

标签: c++ math logic

我正在尝试制作一个闪烁的对象,即将其alpha值从0增加到255(逐渐)然后再回到0,然后重复。

有没有办法可以在不使用布尔值的情况下执行此操作?让它增加很容易:

alpha = time.elapsed()%256;

但在那之后又有什么好办法让它重新计算?

3 个答案:

答案 0 :(得分:15)

如何使用sin函数,这样褪色更愉快,你会得到你想要的。

答案 1 :(得分:14)

也许你可以这样做:

alpha = abs((time.elapsed() % 510) - 254);

答案 2 :(得分:5)

abs(((x + 255)%510) - 255)将在0到255之间线性地从0到255,并且在255到510之间从x线性地从255到0。然后它重复(带有句点) 510当然)。