提交 f6aa7c8b 编写于 作者: 三月三net's avatar 三月三net

Python超人-宇宙模拟器

上级 e4f1cd27
...@@ -241,7 +241,10 @@ class JupiterMoonProtectsEarthSim(UniverseSimScenes): ...@@ -241,7 +241,10 @@ class JupiterMoonProtectsEarthSim(UniverseSimScenes):
camera_look_at(self.sun) camera_look_at(self.sun)
def on_ready(self): def on_ready(self):
from ursina import application from ursina import application, window
# window.title = '宇宙模拟器(universe sim)'
# 运行前触发 # 运行前触发
self.text_panel = create_text_panel(font="fonts/DroidSansFallback.ttf", font_scale=1.3) self.text_panel = create_text_panel(font="fonts/DroidSansFallback.ttf", font_scale=1.3)
self.text_panel.text = self.colliding_info % (0, "0.0%", self.text_panel.text = self.colliding_info % (0, "0.0%",
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
# ============================================================================== # ==============================================================================
from objs import CoreValagaClas from objs import CoreValagaClas
import sys import sys
from ursina import application from ursina import application, window
class UniverseSimScenes: class UniverseSimScenes:
...@@ -30,6 +30,9 @@ class UniverseSimScenes: ...@@ -30,6 +30,9 @@ class UniverseSimScenes:
cls.record_rate = 2 cls.record_rate = 2
UniverseSimScenes.screen_record = True UniverseSimScenes.screen_record = True
application.time_scale = 0.00001 application.time_scale = 0.00001
# from ursina import application, window
window.title = "rec_"+sys.argv[1]
instance = super().__new__(cls) instance = super().__new__(cls)
return instance return instance
......
...@@ -39,6 +39,7 @@ class UrsinaSimulator(Simulator): ...@@ -39,6 +39,7 @@ class UrsinaSimulator(Simulator):
def __init__(self, bodies_sys: System): def __init__(self, bodies_sys: System):
# window.borderless = False # window.borderless = False
if not str(window.title).startswith("rec_"):
window.title = '宇宙模拟器(universe sim)' # 'universe_sim' # '宇宙模拟器' window.title = '宇宙模拟器(universe sim)' # 'universe_sim' # '宇宙模拟器'
icon = find_file("images/icon.ico") icon = find_file("images/icon.ico")
window.icon = icon window.icon = icon
......
...@@ -21,6 +21,6 @@ cd %SimFilePath% ...@@ -21,6 +21,6 @@ cd %SimFilePath%
start python -m %SimFileName% %3 start python -m %SimFileName% %3
cd %SimDir%\tools cd %SimDir%\tools
python -m sim_video_cap --save_name=%param3% --wait=%param4% python -m sim_video_cap --save_name=%param3% --wait=%param4% --window_name=rec_%param3%
...@@ -11,7 +11,7 @@ import win32api ...@@ -11,7 +11,7 @@ import win32api
import traceback import traceback
def get_window_handle(window_name="宇宙模拟器(universe sim)"): def get_window_handle(window_name):
""" """
获取模拟器窗口句柄 获取模拟器窗口句柄
@param window_name: @param window_name:
...@@ -35,6 +35,7 @@ def get_args(): ...@@ -35,6 +35,7 @@ def get_args():
parser.add_argument('--total_time', type=int, default=10000000, help='video total time') parser.add_argument('--total_time', type=int, default=10000000, help='video total time')
parser.add_argument('--save_name', type=str, default='jupiter_moon_protects_earth7.mp4', help='save file name') parser.add_argument('--save_name', type=str, default='jupiter_moon_protects_earth7.mp4', help='save file name')
parser.add_argument('--wait', type=int, default=0, help='wait for recoding') parser.add_argument('--wait', type=int, default=0, help='wait for recoding')
parser.add_argument('--window_name', type=str, default="宇宙模拟器(universe sim)", help='宇宙模拟器(universe sim)')
# parser.add_argument('--screen_type', default=0, type=int, choices=[0, 1], help='1: full screen, 0: region screen') # parser.add_argument('--screen_type', default=0, type=int, choices=[0, 1], help='1: full screen, 0: region screen')
args = parser.parse_args() args = parser.parse_args()
...@@ -44,7 +45,8 @@ def get_args(): ...@@ -44,7 +45,8 @@ def get_args():
args.save_name = rename_exists(args.save_name) args.save_name = rename_exists(args.save_name)
print("save_name:", args.save_name) print("save_name:", args.save_name)
print("wait:", args.wait) print("save_name:", args.save_name)
print("window_name:", args.window_name)
if args.save_name == '': if args.save_name == '':
args.save_name = 'video.mp4' args.save_name = 'video.mp4'
return args return args
...@@ -107,10 +109,11 @@ def wait_sec(sec=0): ...@@ -107,10 +109,11 @@ def wait_sec(sec=0):
def sim_window_screen_shot(wait_ses=-1, retry_times=3): def sim_window_screen_shot(wait_ses=-1, retry_times=3):
global args
times = wait_ses * 100 times = wait_ses * 100
while True: while True:
handle, desktop_dc, img_dc, img = None, None, None, None handle, desktop_dc, img_dc, img = None, None, None, None
handle = get_window_handle() handle = get_window_handle(args.window_name)
if handle > 0: if handle > 0:
desktop_dc = win32gui.GetWindowDC(handle) desktop_dc = win32gui.GetWindowDC(handle)
width, height = get_window_size(handle) width, height = get_window_size(handle)
...@@ -170,7 +173,7 @@ def check_img(img): ...@@ -170,7 +173,7 @@ def check_img(img):
if __name__ == '__main__': if __name__ == '__main__':
args = get_args() args = get_args()
handle = get_window_handle() handle = get_window_handle(args.window_name)
# print(get_args()) # print(get_args())
print("请在10秒内打开模拟器") print("请在10秒内打开模拟器")
img = sim_window_screen_shot(10) img = sim_window_screen_shot(10)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册