Calculating frames per second in a game

后端 未结 19 747
天命终不由人
天命终不由人 2020-12-04 05:10

What\'s a good algorithm for calculating frames per second in a game? I want to show it as a number in the corner of the screen. If I just look at how long it took to render

19条回答
  •  佛祖请我去吃肉
    2020-12-04 05:55

    Here's a complete example, using Python (but easily adapted to any language). It uses the smoothing equation in Martin's answer, so almost no memory overhead, and I chose values that worked for me (feel free to play around with the constants to adapt to your use case).

    import time
    
    SMOOTHING_FACTOR = 0.99
    MAX_FPS = 10000
    avg_fps = -1
    last_tick = time.time()
    
    while True:
        # 
    
        current_tick = time.time()
        # Ensure we don't get crazy large frame rates, by capping to MAX_FPS
        current_fps = 1.0 / max(current_tick - last_tick, 1.0/MAX_FPS)
        last_tick = current_tick
        if avg_fps < 0:
            avg_fps = current_fps
        else:
            avg_fps = (avg_fps * SMOOTHING_FACTOR) + (current_fps * (1-SMOOTHING_FACTOR))
        print(avg_fps)
    

提交回复
热议问题