Как отобразить реальную частоту кадров в га?

Я начал экспериментировать с kha на haxe и скомпилировал пример проекта для своего старого iPad2.

Теперь мне интересно, как отобразить фактическую частоту кадров на экране.

В качестве отправной точки я нашел этот репо:

https://github.com/lewislepton/kha-tutorial-series/blob/master/007_fontText

Он загружает шрифт и отображает текст на экране. Он также устанавливает частоту кадров 60 кадров в секунду.

Так что теперь мне просто нужно вычислить fps и отобразить его через drawString.

Но как рассчитать это?

РЕДАКТИРОВАТЬ:

Благодаря @RobDangerous это, кажется, работает:

package;

import kha.Framebuffer;
import kha.Color;
import kha.Assets;
import kha.input.Surface;
import kha.Font;
import kha.Scheduler;
import Std;


class Project {

    public var font:Font;

    public var previousRealTime:Float;
    public var realTime:Float;

    public function new() {
        font             = Assets.fonts.OpenSans;

        previousRealTime = 0.0;
        realTime         = 0.0;

        Surface.get().notify(onTouchDown, onTouchUp, onTouchMove);
    }

    public function update():Void {
        previousRealTime = realTime;
        realTime = Scheduler.realTime();
    }

    public function render(framebuffer:Framebuffer):Void {
        var graphics = framebuffer.g2;
        graphics.begin();

        var fps = 1.0 / ( realTime - previousRealTime );
        graphics.font = font;
        graphics.fontSize = 32;
        graphics.color = Color.White;
        graphics.drawString(Std.string(fps), 10, 10);

        graphics.end();
    }

    // ...
}

1 ответ

Решение

Вы можете использовать Scheduler.realTime для получения реального времени (Scheduler.time, напротив, является сглаженным значением времени, оптимизированным для плавной анимации). Вы можете поместить realTime в переменную в одном кадре (то есть в обратном вызове рендеринга) и вычесть его из realTime в следующем кадре, чтобы получить время кадра в секундах. Инвертируйте его, чтобы получить ваш fps.

Другие вопросы по тегам