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()