gpt4 book ai didi

python - 在pygame中闪烁图像

转载 作者:行者123 更新时间:2023-11-28 17:28:40 24 4
gpt4 key购买 nike

Python 版本:3.5.1 和 PyGame 版本:1.9.2a0

我的主要目标是在屏幕上闪烁图像。亮 0.5 秒,灭 0.5 秒。

我知道以下可以达到 60fps

frameCount = 0
imageOn = False
while 1:

frameCount += 1



if frameCount % 30 == 0: #every 30 frames
if imageOn == True: #if it's on
imageOn = False #turn it off
elif imageOn == False: #if it's off
imageOn = True #turn it on



clock.tick(60)

但我认为在 int 中计算帧数不切实际。最终我的帧数将太大而无法存储在 int 中。

如何在不以整数形式存储当前帧(在本例中为 frameCount)的情况下每 x 秒闪烁一次图像?或者这实际上是最实用的方法吗?

最佳答案

避免让你的游戏依赖于帧率,因为它会根据帧率改变一切,如果计算机不能运行帧率,整个游戏就会变慢。

这个变量将帮助我们跟踪过去了多长时间。在 while 循环之前:

elapsed_time = 0

查找一帧所需的时间。 my_clock是一个pygame Clock对象,60是任意的

elapsed_time += my_clock.tick(60) # 60 fps, time is in milliseconds

你可以在你的 while 循环中的某处有一个 if 语句:

if elapsed_time > 500 # milliseconds, so .5 seconds
imageOn = False if imageOn else True
elapsed_time = 0 # so you can start counting again

编辑:我建议查看 Chritical 的答案,以找到更简单的方法来更改 imageOn 的 True False 值。我使用了一个内联条件,它有效,但没有必要。

关于python - 在pygame中闪烁图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36383554/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com