Python 中的简单 fps 生成器

问题描述 投票:0回答:1

我是初学者。有人向我展示了一种以非常简单的方式创建 fps 生成器的方法。他告诉我一个没有导入的代码,只有几行。我忘了。我想模仿这段代码,但我有很多错误。

但是向我展示代码的人使用了

for
循环,其中包括:

for i in range ???
   i += 1

我不知道如何解决这个问题

我的代码:

frame_count = 0
start_time = 0

while True:
    frame_count += 1
    current_time += 1
    
    if current_time - start_time >= 1.0:
        fps = frame_count / (current_time - start_time)
        print(f"Frames per second: {fps:.2f}")
        frame_count, start_time = 0, current_time

错误:

回溯(最近一次调用最后一次): 文件“”,第 8 行,位于 名称错误:名称“current_time”未定义

python frame-rate
1个回答
0
投票

您似乎正在尝试在 Python 中创建一个简单的 FPS(每秒帧数)计数器,但您在代码中遇到了一些错误。您收到的错误消息“NameError: name 'current_time' 未定义”是因为您在定义变量

current_time
之前尝试使用它。

要创建无需导入的基本 FPS 计数器,您可以使用

time
模块来测量时间。这是代码的更正版本:

import time

frame_count = 0
start_time = time.time()

while True:
    frame_count += 1
    current_time = time.time()
    
    if current_time - start_time >= 1.0:
        fps = frame_count / (current_time - start_time)
        print(f"Frames per second: {fps:.2f}")
        frame_count, start_time = 0, current_time

这是我改变的:

  1. 我导入了

    time
    模块以使用其
    time.time()
    函数来获取当前时间。

  2. 我使用

    start_time
    用当前时间初始化了
    time.time()
    变量。

  3. 我在循环内定义了

    current_time
    变量,以便在每次迭代中使用当前时间更新它。

通过进行这些更改,您的代码应该按预期工作并正确打印每秒帧数。

© www.soinside.com 2019 - 2024. All rights reserved.