Calculating frames per second in a game

后端 未结 19 752
天命终不由人
天命终不由人 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:57

    In Typescript, I use this algorithm to calculate framerate and frametime averages:

    let getTime = () => {
        return new Date().getTime();
    } 
    
    let frames: any[] = [];
    let previousTime = getTime();
    let framerate:number = 0;
    let frametime:number = 0;
    
    let updateStats = (samples:number=60) => {
        samples = Math.max(samples, 1) >> 0;
    
        if (frames.length === samples) {
            let currentTime: number = getTime() - previousTime;
    
            frametime = currentTime / samples;
            framerate = 1000 * samples / currentTime;
    
            previousTime = getTime();
    
            frames = [];
        }
    
        frames.push(1);
    }
    

    usage:

    statsUpdate();
    
    // Print
    stats.innerHTML = Math.round(framerate) + ' FPS ' + frametime.toFixed(2) + ' ms';
    

    Tip: If samples is 1, the result is real-time framerate and frametime.

提交回复
热议问题