diff --git a/sim_scenes/featured/jupiter_moon_protects_earth.py b/sim_scenes/featured/jupiter_moon_protects_earth.py index e4345c7b7dc8c098aafb06d29f1049eddf3305e2..a75cc092e5c7cad63231e762cbc3a9066476b32b 100644 --- a/sim_scenes/featured/jupiter_moon_protects_earth.py +++ b/sim_scenes/featured/jupiter_moon_protects_earth.py @@ -241,7 +241,10 @@ class JupiterMoonProtectsEarthSim(UniverseSimScenes): camera_look_at(self.sun) 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.text = self.colliding_info % (0, "0.0%", diff --git a/sim_scenes/universe_sim_scenes.py b/sim_scenes/universe_sim_scenes.py index 668fa3b90a38123bea687dfeed5876d73087b48b..774e5c448b4b9f2d16fcb3c5ed21c54f96c74b30 100644 --- a/sim_scenes/universe_sim_scenes.py +++ b/sim_scenes/universe_sim_scenes.py @@ -8,7 +8,7 @@ # ============================================================================== from objs import CoreValagaClas import sys -from ursina import application +from ursina import application, window class UniverseSimScenes: @@ -30,6 +30,9 @@ class UniverseSimScenes: cls.record_rate = 2 UniverseSimScenes.screen_record = True application.time_scale = 0.00001 + # from ursina import application, window + + window.title = "rec_"+sys.argv[1] instance = super().__new__(cls) return instance diff --git a/simulators/ursina_simulator.py b/simulators/ursina_simulator.py index 03273b74b120051d2d7ba404ab1cef5653c04eed..580541d8d99ae236840fac57e05351ee181a946f 100644 --- a/simulators/ursina_simulator.py +++ b/simulators/ursina_simulator.py @@ -39,7 +39,8 @@ class UrsinaSimulator(Simulator): def __init__(self, bodies_sys: System): # window.borderless = False - window.title = '宇宙模拟器(universe sim)' # 'universe_sim' # '宇宙模拟器' + if not str(window.title).startswith("rec_"): + window.title = '宇宙模拟器(universe sim)' # 'universe_sim' # '宇宙模拟器' icon = find_file("images/icon.ico") window.icon = icon self.app = Ursina() diff --git a/tools/sim_video_cap.bat b/tools/sim_video_cap.bat index 025a05f31efb86ea73dff7ec34a8d73767f9862a..72b004c43efdb04ac1aa0722acc422f9a3a2d8f7 100644 --- a/tools/sim_video_cap.bat +++ b/tools/sim_video_cap.bat @@ -21,6 +21,6 @@ cd %SimFilePath% start python -m %SimFileName% %3 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% diff --git a/tools/sim_video_cap.py b/tools/sim_video_cap.py index 0dc85a341cc20a7470261566bd5f7628a637094e..99f973b90c07b10bd271251bd09715ad8fbb4f4a 100644 --- a/tools/sim_video_cap.py +++ b/tools/sim_video_cap.py @@ -11,7 +11,7 @@ import win32api import traceback -def get_window_handle(window_name="宇宙模拟器(universe sim)"): +def get_window_handle(window_name): """ 获取模拟器窗口句柄 @param window_name: @@ -35,6 +35,7 @@ def get_args(): 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('--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') args = parser.parse_args() @@ -44,7 +45,8 @@ def get_args(): args.save_name = rename_exists(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 == '': args.save_name = 'video.mp4' return args @@ -107,10 +109,11 @@ def wait_sec(sec=0): def sim_window_screen_shot(wait_ses=-1, retry_times=3): + global args times = wait_ses * 100 while True: handle, desktop_dc, img_dc, img = None, None, None, None - handle = get_window_handle() + handle = get_window_handle(args.window_name) if handle > 0: desktop_dc = win32gui.GetWindowDC(handle) width, height = get_window_size(handle) @@ -170,7 +173,7 @@ def check_img(img): if __name__ == '__main__': args = get_args() - handle = get_window_handle() + handle = get_window_handle(args.window_name) # print(get_args()) print("请在10秒内打开模拟器") img = sim_window_screen_shot(10)