Difficult-Rocket/DR.py

74 lines
2.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -------------------------------
# Difficult Rocket
# Copyright © 2020-2023 by shenjackyuanjie 3695888@qq.com
# All rights reserved
# -------------------------------
import os
import sys
import time
import traceback
import threading
from pathlib import Path
hi = """Difficult Rocket is writen by shenjackyuanjie
email: 3695888@qq.com or shyj3695888@163.com
QQ: 3695888"""
def print_path() -> None:
print(f'{__file__=}')
print(f'{sys.path=}')
print(f'{sys.path[0]=}')
print(f'{sys.argv[0]=}')
print(f'{Path.cwd()=}')
print(f'{Path(__file__).absolute()=}')
def modify_path() -> None:
os.chdir(Path(__file__).parent) # 将运行路径切换到文件位置 防止bug
sys.path.append('./Difficult_Rocket') # 添加local path
sys.path.append('./libs') # 添加 libs path
def start(start_time_ns: int) -> None:
from Difficult_Rocket import crash, DR_status
from Difficult_Rocket.runtime import DR_runtime
from Difficult_Rocket.exception import TestError
DR_runtime.start_time_ns = start_time_ns
try:
from Difficult_Rocket import main
main_game = main.Game()
main_game.start()
if DR_status.crash_report_test:
raise TestError('debug crash test')
except: # noqa: E722
trace = traceback.format_exc()
crash.create_crash_report(trace)
print(trace)
crash.write_info_to_cache(sys.stdout)
print(crash.all_thread)
print(crash.all_process)
for a_thread in threading.enumerate():
print(a_thread)
if a_thread.is_alive() and not a_thread.daemon:
if a_thread != threading.current_thread() and a_thread != threading.main_thread():
a_thread.join(2) # wait for 2 sec
import pyglet
pyglet.app.exit() # make sure that pyglet has stopped
def main() -> int:
print(hi, f"\n{time.ctime()}") # hi
# 记录启动信息
start_time_ns = time.time_ns()
print_path()
modify_path()
start(start_time_ns)
return 0
if __name__ == '__main__':
sys.exit(main())