ursina_config.py 2.9 KB
Newer Older
三月三net's avatar
三月三net 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13
# -*- coding:utf-8 -*-
# title           :ursina天体运行模拟器
# description     :ursina天体运行模拟器
# author          :Python超人
# date            :2023-02-11
# link            :https://gitcode.net/pythoncr/
# python_version  :3.8
# ==============================================================================
# pip install -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com ursina


class UrsinaConfig:
    # 常量定义
三月三net's avatar
三月三net 已提交
14
    # 天体缩放的因子(不能太大,否则无法容得下大数量级的天体)调整 5e-7 最佳
三月三net's avatar
三月三net 已提交
15 16
    __SCALE_FACTOR = 5e-7
    auto_scale_factor = 1.0  # __SCALE_FACTOR 不能满足,需要自动进行调整
三月三net's avatar
三月三net 已提交
17 18
    # 旋转因子为1,则为正常的转速
    ROTATION_SPEED_FACTOR = 1.0
三月三net's avatar
三月三net 已提交
19
    # ROTATION_SPEED_FACTOR = 0.01
三月三net's avatar
三月三net 已提交
20

三月三net's avatar
三月三net 已提交
21 22
    # 中文字体(微软雅黑)
    CN_FONT = "msyhl.ttc"  # 'simsun.ttc' 仿宋体
三月三net's avatar
三月三net 已提交
23
    # CN_FONT = 'simsun.ttc'  #  仿宋体
三月三net's avatar
三月三net 已提交
24

三月三net's avatar
三月三net 已提交
25 26 27 28 29 30 31 32 33
    # 速度的倍数
    __run_speed_factor = 1.0

    # 天体自旋倍数
    __body_spin_factor = 1.0

    # 摄像机
    __camera_factor = 1.0

三月三net's avatar
三月三net 已提交
34 35
    __on_reset_funcs = []

三月三net's avatar
三月三net 已提交
36 37
    show_trail = False
    # 拖尾球体的数量
三月三net's avatar
三月三net 已提交
38
    trail_length = 100
三月三net's avatar
三月三net 已提交
39 40
    # 默认秒数(0表示默认)
    seconds_per = 0
三月三net's avatar
三月三net 已提交
41 42
    # # 控制摄像机动作速度(天体越大,速度越快,天体越小,速度越慢)
    # control_camera_speed = 1
三月三net's avatar
三月三net 已提交
43

三月三net's avatar
三月三net 已提交
44 45
    __body_size_factor = 1.0

三月三net's avatar
三月三net 已提交
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
    @classmethod
    def init(cls):
        # 初始化
        cls.run_speed_factor = 1.0
        cls.body_spin_factor = 1.0
        cls.body_size_factor = 1.0
        # 天体缩放的因子(不能太大,否则无法容得下大数量级的天体)调整 5e-7 最佳
        cls.SCALE_FACTOR = 5e-7

    @property
    @classmethod
    def SCALE_FACTOR(cls):
        return cls.__SCALE_FACTOR * cls.auto_scale_factor

    @SCALE_FACTOR.setter
    @classmethod
    def SCALE_FACTOR(cls, value):
        cls.__SCALE_FACTOR = value

三月三net's avatar
三月三net 已提交
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
    @property
    @classmethod
    def run_speed_factor(cls):
        return cls.__run_speed_factor

    @run_speed_factor.setter
    @classmethod
    def run_speed_factor(cls, value):
        cls.__run_speed_factor = value

    @property
    @classmethod
    def body_spin_factor(cls):
        return cls.__body_spin_factor

    @body_spin_factor.setter
    @classmethod
    def body_spin_factor(cls, value):
        cls.__body_spin_factor = value

三月三net's avatar
三月三net 已提交
85 86 87 88 89 90 91 92 93 94
    @property
    @classmethod
    def body_size_factor(cls):
        return cls.__body_size_factor

    @body_size_factor.setter
    @classmethod
    def body_spin_factor(cls, value):
        cls.__body_size_factor = value

三月三net's avatar
三月三net 已提交
95 96 97 98 99 100 101 102 103
    @classmethod
    def on_reset_subscription(cls, fun):
        cls.__on_reset_funcs.append(fun)

    @classmethod
    def on_reset(cls):
        for f in cls.__on_reset_funcs:
            f()

三月三net's avatar
三月三net 已提交
104

三月三net's avatar
三月三net 已提交
105
UrsinaConfig.init()
三月三net's avatar
三月三net 已提交
106 107 108 109

if __name__ == '__main__':
    UrsinaConfig.run_speed_factor = 2.0
    print(UrsinaConfig.run_speed_factor)