ursina_config.py 2.2 KB
Newer Older
三月三net's avatar
三月三net 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
# -*- 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:
    # 常量定义
    # 天体缩放的因子(不能太大,否则无法容得下大数量级的天体)
    SCALE_FACTOR = 5e-10
    # 旋转因子为1,则为正常的转速
    ROTATION_SPEED_FACTOR = 1.0
三月三net's avatar
三月三net 已提交
18
    # ROTATION_SPEED_FACTOR = 0.01
三月三net's avatar
三月三net 已提交
19

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

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

    # 天体自旋倍数
    __body_spin_factor = 1.0

    # 摄像机
    __camera_factor = 1.0

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

三月三net's avatar
三月三net 已提交
35 36 37 38
    show_trail = False
    # 拖尾球体的数量
    trail_length = 200

三月三net's avatar
三月三net 已提交
39 40
    __body_size_factor = 1.0

三月三net's avatar
三月三net 已提交
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
    @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 已提交
61 62 63 64 65 66 67 68 69 70
    @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 已提交
71 72 73 74 75 76 77 78 79
    @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 已提交
80 81 82 83

# 初始化
UrsinaConfig.run_speed_factor = 1.0
UrsinaConfig.body_spin_factor = 1.0
三月三net's avatar
三月三net 已提交
84
UrsinaConfig.body_size_factor = 1.0
三月三net's avatar
三月三net 已提交
85 86 87 88

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