API reference

Track and limit framerate of a program.

class tcod.clock.Clock

Bases: object

Measure framerate performance and sync to a given framerate.

Everything important is handled by Clock.sync. You can use the fps properties to track the performance of an application.

Time is sampled with time.perf_counter.

Example:

import tcod.clock

clock = tcod.clock.Clock()
while True:
    clock.sync(1 / 30)  # This loop will run at 30 FPS until interrupted.
property last_fps: float

The FPS of the most recent frame.

property last_frame: float

The length of the most recent frame.

last_time

Last time this Clock was synced.

property max_fps: float

The FPS of the fastest frame.

max_samples = 64

Number of framerate samples to log. This attribute be set in the class or instance.

property mean_fps: float

The FPS of the sampled frames overall.

property median_fps: float

The FPS of the median frame.

property min_fps: float

The FPS of the slowest frame.

sync(desired_framerate=None)

Sync to a given framerate and return the delta time.

Parameters:

desired_framerate (float | None) – The desired framerate in seconds. If None is given then this function will track the time and framerate without ever waiting. Must be above zero when not None.

Returns:

The delta time since the last call to sync, in seconds.

Return type:

float

time_samples: deque[float]

A recent collection of delta-time samples.