Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Python_超人
太阳系三体模拟器
提交
5d2f1f56
太阳系三体模拟器
项目概览
Python_超人
/
太阳系三体模拟器
通知
1103
Star
131
Fork
129
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
太阳系三体模拟器
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
5d2f1f56
编写于
3月 17, 2023
作者:
三月三net
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
太阳系三体模拟器
上级
d29fab1a
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
42 addition
and
4 deletion
+42
-4
simulators/ursina/ursina_ui.py
simulators/ursina/ursina_ui.py
+28
-2
simulators/ursina_simulator.py
simulators/ursina_simulator.py
+14
-2
未找到文件。
simulators/ursina/ursina_ui.py
浏览文件 @
5d2f1f56
...
...
@@ -7,14 +7,14 @@
# python_version :3.8
# ==============================================================================
from
ursina
import
Ursina
,
window
,
Entity
,
Grid
,
Mesh
,
camera
,
Text
,
application
,
color
,
mouse
,
Vec2
,
Vec3
,
\
load_texture
,
held_keys
,
Button
,
ButtonList
,
destroy
,
scene
,
distance
load_texture
,
held_keys
,
Button
,
ButtonList
,
destroy
,
scene
,
distance
,
Sequence
,
Wait
,
Func
from
ursina.prefabs.first_person_controller
import
FirstPersonController
from
common.consts
import
AU
from
simulators.ursina.ui_component
import
UiSlider
,
SwithButton
,
UiButton
from
simulators.ursina.ursina_config
import
UrsinaConfig
from
simulators.ursina.ursina_event
import
UrsinaEvent
from
ursina
import
WindowPanel
,
InputField
,
Button
,
Slider
,
ButtonGroup
,
Panel
from
ursina
import
WindowPanel
,
InputField
,
Button
,
Slider
,
ButtonGroup
,
Panel
,
invoke
class
UrsinaUI
:
...
...
@@ -121,6 +121,28 @@ class UrsinaUI:
# slider_text = Text(text='自转速度', scale=1, position=(-0.6, 0.3))
# slider = Slider(scale=0.5, position=(-0.6, 0), min=0, max=10, step=1, text=slider_text)
def
show_message
(
self
,
message
,
close_time
=
3
):
"""
创建消息框
:param message: 消息内容
:param close_time: 定义关闭时间
:return:
"""
# 创建消息框
message_box
=
Text
(
text
=
message
,
font
=
UrsinaConfig
.
CN_FONT
,
background
=
True
,
origin
=
(
0
,
0
),
y
=
.
25
)
# 定义关闭函数
def
close_message
():
destroy
(
message_box
)
s
=
Sequence
(
Wait
(
3
),
Func
(
close_message
)
)
s
.
start
()
# # 使用 time 模块来实现定时关闭
# invoke(close_message, delay=close_time)
def
on_off_trail_changed
(
self
):
if
self
.
on_off_trail
.
value
==
self
.
trail_button_text
:
UrsinaConfig
.
show_trail
=
True
...
...
@@ -154,6 +176,10 @@ class UrsinaUI:
results
=
UrsinaEvent
.
on_searching_bodies
()
if
len
(
results
)
>
0
:
sub_name
,
bodies
=
results
[
0
]
if
len
(
bodies
)
==
0
:
self
.
show_message
(
"天体都飞不见了,请重新运行。"
)
# button_dict = {"天体都飞不见了,请重新运行。": lambda: self.bodies_button_list_click(None)}
return
# print(results[0])
button_dict
=
{
"[关闭]"
:
lambda
:
self
.
bodies_button_list_click
(
None
)}
camera
=
scene
.
camera
...
...
simulators/ursina_simulator.py
浏览文件 @
5d2f1f56
...
...
@@ -20,6 +20,7 @@ from common.system import System
import
time
import
datetime
import
math
import
os
from
ursina
import
EditorCamera
,
PointLight
,
SpotLight
,
AmbientLight
,
DirectionalLight
from
scenes.func
import
ursina_run
...
...
@@ -66,7 +67,6 @@ class UrsinaSimulator(Simulator):
views
.
append
(
view
)
return
views
def
check_elapsed_time
(
self
):
"""检查时间间隔是否已过"""
now
=
datetime
.
datetime
.
now
()
...
...
@@ -154,6 +154,17 @@ class UrsinaSimulator(Simulator):
return
lights
def
switch_to_english_input_method
(
self
):
pass
# os.system("powershell -Command \"Set-WinUserLanguageList -LanguageList 'en-US', 'zh-CN' -Force\"")
# if os.name == 'nt': # Windows 系统
# os.system('powershell -Command "Set-WinUserLanguageList en-US -Force"')
# elif os.name == 'posix': # macOS 或 Linux 系统
# os.system(
# 'defaults write ~/Library/Preferences/com.apple.HIToolbox.plist AppleSelectedInputSources -array-add \'{ "InputSourceKind" = "Keyboard Layout"; "KeyboardLayout ID" = 252; "KeyboardLayout Name" = "ABC"; }\'')
# os.system('killall cfprefsd') # 重启 CoreFoundation 进程使更改生效
def
run
(
self
,
dt
,
**
kwargs
):
window
.
title
=
'宇宙模拟器'
...
...
@@ -191,7 +202,8 @@ class UrsinaSimulator(Simulator):
ui
=
UrsinaUI
()
EditorCamera
(
ignore_paused
=
True
)
# 防止打开中文输入法
# self.switch_to_english_input_method()
self
.
app
.
run
()
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录