优雅地向上和向下计数
我正在尝试制作一个闪烁的对象,即将其 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用 sin 函数怎么样,这样褪色会更愉快,你会得到你想要的。
How about using a sin function, that way the fading is more pleasant and you'll get what you want.
也许你可以这样做:
Maybe you could do it this way:
对于 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).