This commit is contained in:
沈瑗杰 2021-02-20 21:46:14 +08:00
parent 9cee725e43
commit df30ed8890
4 changed files with 70 additions and 36 deletions

View File

@ -1,14 +1,12 @@
'''
"""
writen by shenjackyuanjie
mail: 3695888@qq.com
'''
import multiprocessing as mp
"""
import os
import pyglet
import pyglet.app
from pyglet import image
from pyglet.window import Window
import multiprocessing as mp
try:
# been import use
@ -31,6 +29,7 @@ class client(mp.Process):
# value
self.process_id = 'Client'
self.process_name = 'Client process'
self.process_pid = os.getpid()
self.view = 'space'
self.net_mode = net_mode
self.window_config = tools.config('sys_value/window.json5')
@ -43,8 +42,12 @@ class client(mp.Process):
fullscreen=tools.c_b(self.window_config['full_screen']),
caption=str(self.window_config['caption']),
visible=tools.c_b(self.window_config['visible']))
self.log_config()
def start(self) -> None:
def log_config(self):
self.logger.info('client is running on pid : %s' % self.process_pid)
def run(self) -> None:
pyglet.app.run()
@ -74,10 +77,12 @@ class window(pyglet.window.Window):
self.part_list = tools.config('sys_value/parts.json5')
# dic
self.ships = {} # all ship(part)
self.planet_system = tools.config('sys_value/planet.json5')
# hole planet system
self.planet_system = tools.config('sys_value/planet.json5') # hole planet system
# list
# re stuff
# batch
self.part_batch = pyglet.graphics.Batch()
self.label_batch = pyglet.graphics.Batch()
self.runtime_batch = pyglet.graphics.Batch()
# window
self.logger.info('client setup done!')
self.textures = {}
@ -93,14 +98,23 @@ class window(pyglet.window.Window):
parts = tools.config('sys_value/parts.json5')
for part in parts:
path = parts[part][2][0]
path = 'textures/' + path
part_image = image.load(path)
part_image = image.load('textures/' + path)
self.textures['part'][part] = part_image
# tests
self.info_label = pyglet.text.Label(text='test',
x=150, y=100,
batch=self.label_batch)
# draws
def on_draw(self):
return
self.draw_batch()
def draw_batch(self):
self.part_batch.draw()
self.runtime_batch.draw()
self.label_batch.draw()
def build_draw(self):
pass

View File

@ -36,7 +36,11 @@ class Game:
# share memory
self.dicts = share().dict()
self.lists = share().list()
# lang_config
self.language = tools.config('sys_value/basic_config.json5')
self.language = self.language['language']
self.lang = tools.config('sys_value/lang/%s.json5' % self.language)
self.lang = self.lang['main']
# logger
self.log_config = tools.config('configs/logging.json5', 'file')
self.log_filename = configs.name_handler(self.log_config['filename']['main'],
@ -57,16 +61,17 @@ class Game:
self.main_logger = logging.getLogger().getChild('main')
self.server_logger = logging.getLogger().getChild('server')
self.client_logger = logging.getLogger().getChild('client')
self.main_logger.info('loggers created')
self.main_logger.info('main logger setup done')
self.log_log_config()
self.main_logger.info(self.lang['logger.created'])
self.main_logger.info(self.lang['logger.main_done'])
self.log_configs()
# version check
self.python_version_check()
# client and server
self.client = client.client(self.client_logger, self.dicts, self.lists, net_mode='local')
self.server = server.server(self.lists, self.dicts, self.server_logger, net_mode='local')
def log_log_config(self):
def log_configs(self):
self.main_logger.info('%s %s' % (self.lang['lang.language'], self.language))
self.main_logger.info('game start setup at %s' % self.start_time)
self.main_logger.debug('log file name: %s' % self.log_filename)
self.main_logger.debug('log file level: %s' % self.log_config['level'])
@ -84,4 +89,4 @@ class Game:
def start(self):
# start
self.client.start()
self.client.run()

View File

@ -1,28 +1,34 @@
from decimal import Decimal as De
import logging
tick_time, velocity, height = De('0'), De('0'), De('0')
m = De('4610025')
gravity = De('9.798')
R = De('637100')
n = De('0.5943466')
H = De('70000')
F = De('208201000')
TPS = 20
tick_time, velocity, height, add_speed = 0, 0, 0, 0
m = 4610025
gravity = 9.798
R = 637100
n = 0.5943466
H = 70000
F = 208201000
TPS = 10
MSPT = 1 / TPS
logging.basicConfig(filename='logs/super.log',
filemode='w',
level=logging.DEBUG)
while True: # 主tick循环
logging.info([tick_time, velocity, height, add_speed])
# 基础加速度运算
add_speed = (F / m) - ((gravity * (R ** 2)) / ((R * tick_time * height) ** 2))
add_speed = (F / m) - ((gravity * (R ** 2)) / ((R + height) ** 2))
# 出大气层判定
if height < 70000: # 没出大气 加速度需要减去大气阻力
add_speed -= (n * (velocity ** 2) * (10 * (-6 * height) / H)) / m
height += MSPT * velocity # 高度 加 速度除以TPStick per second每tick加速
velocity += MSPT * add_speed # 速度 加 加速度除以TPS
add_speed -= ((n * (velocity ** 2) * (10 ** (-6 * height) / H)) / m)
height += (MSPT * velocity) # 高度 加 速度除以TPStick per second每tick加速
velocity += (MSPT * add_speed) # 速度 加 加速度除以TPS
if tick_time < 192: # 一些我也不知道是什么意思的tick判定
m -= (MSPT * F) / 3399.2 # 3399.2是个啥?
m -= ((MSPT * F) / 3399.2) # 3399.2是个啥?
elif tick_time < 240:
m -= 129 * MSPT # ??? 129?
m -= (129 * MSPT) # ??? 129?
else:
m -= 4 * MSPT # 4?
m -= (4 * MSPT) # 4?
# tick 加时间
tick_time += MSPT
if tick_time < 48: # 如果时间没到48秒
@ -46,4 +52,4 @@ while True: # 主tick循环
tick_time += ((12308300 - height) / velocity)
break
print('t: ' + tick_time)
print('t: %s' % tick_time)

View File

@ -0,0 +1,9 @@
{
'main': {
'lang.language': '游戏语言为:',
'logger.created': '日志处理器创建完成',
'logger.main_done': '主日志处理器创建完成',
'logger.log_file_name': '日志文件记录级别:',
'game_start_at': '游戏主线程开始于:'
}
}