ProcessingのFPSを計測

クレーの大冒険のデバッグでキー入力の反応が悪かったためFPSを測って検証することにした。それにあたってFPSを計測するクラスを作ったのでメモしておく。

ちなみに、キー入力の反応が悪かったのは処理落ちではなくてdraw関数内でkeyPressedを拾うと早すぎてうまく動作していない様子。def keyPressed()で拾うと1キー入力あたりを正確に拾える様子だったのでFPS計測は無駄に終わった。

class FPS(object):
    def __init__(self):
        self.fpsf = 0;
        self.nowTime = 0;
        self.frameTime = 0;
        self.f = 0.0;
        self.fps = 0.0;
        self.frame_survey = 0
        self.startTime = millis()

    def printFPS(self):
        self.frame_survey += 1
        if self.frame_survey == 1:
            self.frameTime = millis()
        self.fpsf += 1
        self.nowTime = millis()
        time = int((self.nowTime - self.startTime) / 1000)
        if time - self.f >= 1:
            print("{} fps / {} ms".format(self.fpsf,(self.nowTime-self.frameTime)/self.fpsf))
            self.fpsf = 0
            self.f = time
            self.frameTime = millis()
from FPS import FPS
fps = none
def setup():
    global fps
    fps = FPS()

def draw():
    fps.printFPS()

コメントする