クレーの大冒険のデバッグでキー入力の反応が悪かったため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()