2016-12-14 34 views
3

我開始在haxe上試驗kha,併爲我老化的iPad2編寫了一個示例項目。如何以kha顯示真實幀速率?

現在我想知道如何在屏幕上顯示實際的幀速率。

作爲一個起點,我發現這個回購協議:

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

它加載的字體,並在屏幕上顯示一些文字。它還將幀速率設置爲60fps。

所以現在我只需要調整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(); 
    } 

    // ... 
} 

回答

6

您可以使用Scheduler.realTime獲得實際的,實時(Scheduler.time相反是平滑爲流體動畫優化的時間值)。您可以將實時時間放入一幀(又名呈現回調)中的變量中,並在下一幀中將其從實時時間中減去,以獲得以秒爲單位的幀時間。反轉它來獲得你的fps。

+0

對不起,我有點困惑。 「反轉」是什麼意思? – RedRoosterMobile

+0

好的,謝謝,它的工作! ipad2 60fps!哇噢 – RedRoosterMobile