def _draw(self, flip=True): if self.user_draw: self.user_draw(self.inp, self.dt) def mean(numbers): return float(sum(numbers)) / max(len(numbers), 1) avg_dt = mean(self.dt_history) avg_fps = mean([0 if dt == 0 else 1 / dt for dt in self.dt_history]) self.dbg_counter.y = self.height -17 self.dbg_counter.text = "%6d %6.2f ms %6.2f fps" % (self.counter, avg_dt * 1000, avg_fps) self.dbg_counter.draw() self.counter += 1 if flip: self.flip() if self.fps_limit: Timer.accurate_sleep_until(self.timer.prev_ts + int(Timer.freq / self.fps_limit)) self.dt = min(self.timer.step(), 1 / 20) # max dt self.dt_history.append(self.dt)