# -*- coding:utf-8 -*- # title :计时器 # description :计时器 # author :Python超人 # date :2023-02-11 # link :https://gitcode.net/pythoncr/ # python_version :3.8 # ============================================================================== from ursina import Text, Ursina, application import datetime from simulators.ursina.entities.body_timer import TimeData from simulators.ursina.ursina_config import UrsinaConfig from simulators.ursina.ursina_event import UrsinaEvent class Timer(Text): def __init__(self, show=True): # 创建一个文本对象来显示计时器的时间 from ursina import window aspect_ratio = window.aspect_ratio position, origin = (0.5 * aspect_ratio - 0.18, -0.465), (-0.5, 0.5), font = "fonts/DroidSansFallback.ttf" from common.func import find_file font = find_file(f"{font}", None) if font is None: font = UrsinaConfig.CN_FONT font_scale = 1 else: font_scale = 1.3 position, origin = (0.5 * aspect_ratio - 0.15, -0.465), (-0.2, 0.2), super().__init__(text=' ', position=position, # (0.70, -0.465), origin=origin, scale=font_scale, font=font, background=True) UrsinaEvent.on_timer_changed_subscription(self.on_timer_changed) if not show: self.enabled = False def on_timer_changed(self, time_data: TimeData): self.text = time_data.time_text def update(self): self.text = "00:00:00" if __name__ == '__main__': app = Ursina() t = Timer() def update(): t.update() app.run()