Source code for bruhanimate.demos.shared_player_demo

"""A native effect with ten simulation ticks and sixty presentations per second."""

from bruhanimate import BaseEffect, ImageEffect, ResizePolicy, Scene, play


[docs] class StepEffect(BaseEffect):
[docs] def __init__(self, buffer): super().__init__(buffer, " ") self.step = 0
[docs] def update(self, dt): self.buffer.clear_buffer() self.buffer.put_at_center(self.buffer.height() // 2, f"Step {self.step}") self.buffer.put_char(self.step % self.buffer.width(), 0, "*") self.step += 1
[docs] def build(buffer): return Scene(StepEffect(buffer), ImageEffect("10 updates / 60 draws", x=0, y=1))
[docs] def run(*, frames=None, fps=60, on_resize: ResizePolicy = "resize"): return play( effect_factory=build, fps=fps, updates_per_second=10, frames=frames, on_resize=on_resize, )
if __name__ == "__main__": run()