0.6.1 developing
This commit is contained in:
parent
fd343d877f
commit
635fd668dd
@ -24,6 +24,7 @@ error_format = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
# 如果Python版本小于3.10就不导入pyjion
|
||||||
print(f'{__file__=}')
|
print(f'{__file__=}')
|
||||||
print(f'{sys.path[0]=}')
|
print(f'{sys.path[0]=}')
|
||||||
print(f'{sys.argv[0]=}')
|
print(f'{sys.argv[0]=}')
|
||||||
|
@ -14,6 +14,7 @@ gitee: @shenjackyuanjie
|
|||||||
version = '0.6.1'
|
version = '0.6.1'
|
||||||
__version__ = version
|
__version__ = version
|
||||||
|
|
||||||
|
|
||||||
playing = False
|
playing = False
|
||||||
|
|
||||||
if playing:
|
if playing:
|
||||||
|
@ -23,6 +23,8 @@ import configparser
|
|||||||
from typing import List
|
from typing import List
|
||||||
from xml.dom.minidom import parse
|
from xml.dom.minidom import parse
|
||||||
|
|
||||||
|
import Difficult_Rocket
|
||||||
|
|
||||||
if __name__ == '__main__': # been start will not run this
|
if __name__ == '__main__': # been start will not run this
|
||||||
sys.path.append('/bin/libs')
|
sys.path.append('/bin/libs')
|
||||||
sys.path.append('/bin')
|
sys.path.append('/bin')
|
||||||
@ -54,21 +56,20 @@ def load_file(file_name: str, stack=None) -> dict:
|
|||||||
if (f_type == 'json5') or (f_type == 'json'):
|
if (f_type == 'json5') or (f_type == 'json'):
|
||||||
try:
|
try:
|
||||||
with open(file_name, 'r', encoding='utf-8') as jf: # jf -> json file
|
with open(file_name, 'r', encoding='utf-8') as jf: # jf -> json file
|
||||||
rd = json5.load(jf)
|
rd = json5.load(jf, encoding='uft-8')
|
||||||
|
# json_file = open(file_name, 'r', encoding='utf-8')
|
||||||
|
# rd = json5.load(json_file, encoding='utf-8')
|
||||||
|
# json_file.close()
|
||||||
except UnicodeDecodeError:
|
except UnicodeDecodeError:
|
||||||
with open(file_name, 'r', encoding='gbk') as jf:
|
with open(file_name, 'r', encoding='gbk') as jf:
|
||||||
rd = json5.load(jf)
|
rd = json5.load(jf)
|
||||||
tools_logger.info('文件 %s 解码错误,已重新使用gbk编码打开' % file_name)
|
tools_logger.info('文件 %s 解码错误,已重新使用gbk编码打开' % file_name)
|
||||||
if stack is not None:
|
if stack is not None:
|
||||||
rd = rd[stack]
|
rd = rd[stack]
|
||||||
return rd
|
|
||||||
elif f_type == 'xml':
|
elif f_type == 'xml':
|
||||||
xml_load = parse(file_name)
|
xml_load = parse(file_name)
|
||||||
if stack is not None:
|
if stack is not None:
|
||||||
xml_get = xml_load.getElementsByTagName(stack)
|
rd = xml_load.getElementsByTagName(stack)
|
||||||
return xml_get
|
|
||||||
else:
|
|
||||||
return xml_load
|
|
||||||
elif (f_type == 'config') or (f_type == 'conf') or (f_type == 'ini'):
|
elif (f_type == 'config') or (f_type == 'conf') or (f_type == 'ini'):
|
||||||
cp = configparser.ConfigParser() # cp -> config parser
|
cp = configparser.ConfigParser() # cp -> config parser
|
||||||
cp.read(file_name) # config parser -> reader
|
cp.read(file_name) # config parser -> reader
|
||||||
@ -79,7 +80,6 @@ def load_file(file_name: str, stack=None) -> dict:
|
|||||||
rd[section][data] = cp[section][data]
|
rd[section][data] = cp[section][data]
|
||||||
if stack:
|
if stack:
|
||||||
rd = rd[stack]
|
rd = rd[stack]
|
||||||
return rd
|
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
log = 'no {} file was found!: \n file name: {} \n file type: {} \n stack: {}'.format(f_type, file_name, f_type, stack)
|
log = 'no {} file was found!: \n file name: {} \n file type: {} \n stack: {}'.format(f_type, file_name, f_type, stack)
|
||||||
tools_logger.error(log)
|
tools_logger.error(log)
|
||||||
@ -92,6 +92,7 @@ def load_file(file_name: str, stack=None) -> dict:
|
|||||||
log = 'some error has been found!\n error type: {} \n file name: {} \n file type: {} \n stack: {}'.format(type(exp), file_name, f_type, stack)
|
log = 'some error has been found!\n error type: {} \n file name: {} \n file type: {} \n stack: {}'.format(type(exp), file_name, f_type, stack)
|
||||||
tools_logger.error(log)
|
tools_logger.error(log)
|
||||||
raise
|
raise
|
||||||
|
return rd
|
||||||
|
|
||||||
|
|
||||||
# main config
|
# main config
|
||||||
|
@ -197,9 +197,9 @@ class ClientWindow(pyglet.window.Window):
|
|||||||
def FPS_update(self, tick: Decimal):
|
def FPS_update(self, tick: Decimal):
|
||||||
now_FPS = pyglet.clock.get_fps()
|
now_FPS = pyglet.clock.get_fps()
|
||||||
self.fps_log.update_tick(tick)
|
self.fps_log.update_tick(tick)
|
||||||
self.fps_label.text = f'FPS: {now_FPS:_>10.1f} \n{self.fps_log.max_fps:_>10.1f} {self.fps_log.min_fps:>5.1f}'
|
self.fps_label.text = f'FPS: {now_FPS:_>10.1f} \n{1/tick} \n{self.fps_log.max_fps:_>10.1f} {self.fps_log.min_fps:>5.1f}'
|
||||||
|
|
||||||
def on_draw(self):
|
def on_draw(self, *dt):
|
||||||
self.clear()
|
self.clear()
|
||||||
self.draw_batch()
|
self.draw_batch()
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ gitee: @shenjackyuanjie
|
|||||||
|
|
||||||
from Difficult_Rocket import translate
|
from Difficult_Rocket import translate
|
||||||
|
|
||||||
from libs import pyglet
|
# from libs import pyglet
|
||||||
from libs.pyglet import font
|
from libs.pyglet import font
|
||||||
from libs.pyglet.text import Label
|
from libs.pyglet.text import Label
|
||||||
from libs.pyglet.gui import widgets
|
from libs.pyglet.gui import widgets
|
||||||
@ -53,7 +53,10 @@ class InputBox(widgets.WidgetBase):
|
|||||||
message: str = '',
|
message: str = '',
|
||||||
font_name: str = translate.鸿蒙简体,
|
font_name: str = translate.鸿蒙简体,
|
||||||
font_size: int = 15,
|
font_size: int = 15,
|
||||||
blod: bool = False,
|
font_bold: bool = False,
|
||||||
|
font_italic: bool = False,
|
||||||
|
font_stretch: bool = False,
|
||||||
|
font_dpi: int = 100,
|
||||||
text_color: [int, int, int] = (0, 0, 0, 255),
|
text_color: [int, int, int] = (0, 0, 0, 255),
|
||||||
out_line_color: [int, int, int] = (255, 255, 255),
|
out_line_color: [int, int, int] = (255, 255, 255),
|
||||||
cursor_color: [int, int, int] = (255, 255, 255),
|
cursor_color: [int, int, int] = (255, 255, 255),
|
||||||
@ -62,10 +65,13 @@ class InputBox(widgets.WidgetBase):
|
|||||||
group: Group = Group()):
|
group: Group = Group()):
|
||||||
super().__init__(x, y, width, height)
|
super().__init__(x, y, width, height)
|
||||||
self._text = message
|
self._text = message
|
||||||
self.text = self._text
|
self._text_position = 0
|
||||||
self.字体 = font.load(name=font_name, size=font_size, blod=blod)
|
self.font = font.load(name=font_name, size=font_size,
|
||||||
self.字高 = self.字体.ascent - self.字体.descent
|
blod=font_bold, italic=font_italic, stretch=font_stretch,
|
||||||
self.外框距离 = out_line
|
dpi=font_dpi)
|
||||||
|
self.font_height = self.font.ascent - self.font.descent0
|
||||||
|
self._select_position = [self.x, self.y, self.x, self.y + self.font_height]
|
||||||
|
self.out_bound = out_line
|
||||||
self._输入框 = Label(x=x + out_line, y=y + out_line,
|
self._输入框 = Label(x=x + out_line, y=y + out_line,
|
||||||
width=width, height=height,
|
width=width, height=height,
|
||||||
color=text_color,
|
color=text_color,
|
||||||
@ -78,8 +84,15 @@ class InputBox(widgets.WidgetBase):
|
|||||||
batch=batch, group=group)
|
batch=batch, group=group)
|
||||||
self._光标 = Rectangle(x=x + out_line, y=y + out_line,
|
self._光标 = Rectangle(x=x + out_line, y=y + out_line,
|
||||||
color=cursor_color,
|
color=cursor_color,
|
||||||
width=1, height=self.字高,
|
width=1, height=self.font_height,
|
||||||
batch=batch, group=group)
|
batch=batch, group=group)
|
||||||
|
self._选择框 = Rectangle(x=x, y=y, width=0, height=self.font_height,
|
||||||
|
color=(63, 115, 255))
|
||||||
|
self._选择的字 = Label(x=x, y=y, width=0, height=self.font_height,
|
||||||
|
color=text_color,
|
||||||
|
font_name=font_name, font_size=font_size,
|
||||||
|
batch=batch, group=group,
|
||||||
|
text='')
|
||||||
|
|
||||||
"""
|
"""
|
||||||
输入框的属性
|
输入框的属性
|
||||||
@ -95,6 +108,21 @@ class InputBox(widgets.WidgetBase):
|
|||||||
self._text = value
|
self._text = value
|
||||||
self._输入框.text = value
|
self._输入框.text = value
|
||||||
|
|
||||||
|
@property
|
||||||
|
def select_position(self):
|
||||||
|
return self._select_position
|
||||||
|
|
||||||
|
@select_position.setter
|
||||||
|
def select_position(self, value):
|
||||||
|
if value > len(self.text):
|
||||||
|
value = len(self.text)
|
||||||
|
if value > 0:
|
||||||
|
self._select_position = self.x
|
||||||
|
for glyphs in self.font.get_glyphs(self.text)[:value]:
|
||||||
|
self._select_position += glyphs.width
|
||||||
|
else:
|
||||||
|
self._select_position = self.x
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def opacity(self):
|
def opacity(self):
|
||||||
return self._输入框.opacity
|
return self._输入框.opacity
|
||||||
@ -106,16 +134,21 @@ class InputBox(widgets.WidgetBase):
|
|||||||
self._外框.opacity = value
|
self._外框.opacity = value
|
||||||
self._光标.opacity = value
|
self._光标.opacity = value
|
||||||
|
|
||||||
|
@property
|
||||||
|
def value(self):
|
||||||
|
return self._text
|
||||||
|
|
||||||
"""
|
"""
|
||||||
事件调用
|
事件调用
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def _update_position(self):
|
def _update_position(self):
|
||||||
self._输入框.position = self._x + self.外框距离, self._y + self.外框距离
|
self._输入框.position = self._x + self.out_bound, self._y + self.out_bound
|
||||||
self._外框.position = self._x - self.外框距离, self._y - self.外框距离
|
self._外框.position = self._x - self.out_bound, self._y - self.out_bound
|
||||||
self._光标.position = self._x + self.外框距离, self._y + self.外框距离
|
self._光标.position = self._x + self.out_bound, self._y + self.out_bound
|
||||||
|
|
||||||
def on_text(self, text):
|
def on_text(self, text):
|
||||||
|
if self.enabled:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def on_text_motion(self, motion):
|
def on_text_motion(self, motion):
|
||||||
@ -125,7 +158,10 @@ class InputBox(widgets.WidgetBase):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
def on_mouse_press(self, x, y, buttons, modifiers):
|
def on_mouse_press(self, x, y, buttons, modifiers):
|
||||||
pass
|
if self._check_hit(x, y):
|
||||||
|
self.enabled = True
|
||||||
|
else:
|
||||||
|
self.enabled = False
|
||||||
|
|
||||||
def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers):
|
def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers):
|
||||||
pass
|
pass
|
||||||
|
Loading…
Reference in New Issue
Block a user