优雅地向上和向下计数

发布于 2024-08-04 20:17:04 字数 189 浏览 3 评论 0原文

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

有没有一种方法可以在不使用布尔值的情况下做到这一点?让它递增很容易:

alpha = time.elapsed()%256;

但是有什么好方法让它在这之后再次倒计时呢?

I'm trying to make a flashing object, i.e., increment it's alpha value from 0 to 255 (gradually) and then back down to 0, and repeat.

Is there a way I can do this without using some boolean? Getting it to increment is easy:

alpha = time.elapsed()%256;

But what's a nice way to get it to count back down again after that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

坚持沉默 2024-08-11 20:17:04

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

How about using a sin function, that way the fading is more pleasant and you'll get what you want.

我ぃ本無心為│何有愛 2024-08-11 20:17:04

也许你可以这样做:

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

Maybe you could do it this way:

alpha = abs((time.elapsed() % 510) - 254);
活泼老夫 2024-08-11 20:17:04

对于 0 到 255 之间的 x,abs(((x + 255) % 510) - 255) 将从 0 线性到 255,对于 255 到 510 之间的 x,从 255 线性到 0。然后重复(当然周期为 510) )。

abs(((x + 255) % 510) - 255) will go linearly from 0 to 255 for x between 0 and 255, and linearly from 255 to 0 for x between 255 and 510. Then it repeats (with period 510 of course).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文