死灵法师出现了! wtm!

This commit is contained in:
shenjack-5600u 2024-07-28 08:05:05 +08:00
parent 695fad3c24
commit 6490ace480
Signed by: shenjack
GPG Key ID: FDF9864E11C7E79F
2 changed files with 87 additions and 5 deletions

View File

@ -18,6 +18,7 @@ from pyglet.window import mouse
# from pyglet.sprite import Sprite
from pyglet.shapes import Rectangle, BorderedRectangle, ShapeBase, _rotate_point
from pyglet.gui.widgets import WidgetBase
# from pyglet.image import AbstractImage
from pyglet.graphics import Batch, Group
@ -106,7 +107,7 @@ class 拐角(ShapeBase):
x4, y1,
x4, y4,
x3, y4,
x2, y3,
x3, y2,
x1, y2
))
# fmt: on
@ -149,6 +150,16 @@ class 拐角(ShapeBase):
def thick2(self) -> float:
return self.thick2
@property
def thickness(self) -> float:
return self._thick1
@thickness.setter
def thickness(self, value: float):
self._thick1 = value
self._thick2 = value
self._update_vertices()
@property
def width(self) -> float:
return self._width
@ -187,6 +198,68 @@ class 拐角(ShapeBase):
self._update_vertices()
class WikiButton(WidgetBase):
# 左上角的普通状态下颜色
upper_normal = (109, 109, 110, 255)
upper_press = (90, 91, 92, 255)
# 右下角的
down_normal = (90, 91, 92, 255)
down_press = (70, 71, 71, 255)
# 左下角方块
corner_normal = (124, 124, 125, 255)
corner_press = (106, 107, 108, 255)
def __init__(
self, x: int, y: int, width: int, height: int, batch: Batch, group: Group
) -> None:
super().__init__(x, y, width, height)
self.enabled = False
pad = 2
# 覆盖式
self.main_batch = batch or Batch()
self.main_group = group or Group()
# 背景的黑框
self.background_group = Group(order=10, parent=self.main_group)
# 左上右下两组
self.border_group = Group(order=20, parent=self.main_group)
# 左下右上两个小方块
self.corner_group = Group(order=32, parent=self.main_group)
self.upper_border = 拐角(
x=self.x,
y=self.y,
width=width,
height=height,
thick1=pad,
thick2=pad,
color=self.upper_normal
)
self.down_border = 拐角(
x=self.x,
y=self.y,
width=width,
height=height,
thick1=pad,
thick2=pad,
clockwise=False,
color=self.down_normal
)
self.left_down = Rectangle(
x=self.x,
y=self.y,
width=pad,
height=pad,
color=self.corner_normal
)
def __contains__(self, pos: tuple[float, float]) -> bool:
box = self.aabb()
return box[0] < pos[0] < box[2] and box[1] < pos[1] < box[3]
def on_mouse_press(self, x: int, y: int, buttons: int, modifiers: int) -> None:
...
class BaseButtonTheme:
"""
按钮的风格
@ -247,6 +320,7 @@ class MinecraftWikiButtonTheme(BaseButtonTheme):
theme: Optional[dict] = None,
):
super().__init__(x, y, width, height, batch, group)
self.enable = False
self.batch = batch
self.group = group
a = (72, 73, 74, 255)

View File

@ -13,6 +13,7 @@ from Difficult_Rocket.api.screen import BaseScreen
from Difficult_Rocket.gui.widget.button import (
PressTextButton,
MinecraftWikiButtonTheme,
WikiButton,
)
from lib_not_dr import loggers
@ -118,11 +119,18 @@ class Menu(BaseScreen):
dict_theme={"pop_out": True}
)
self.tester = WikiButton(
x=50, y=50, width=100, height=100, batch=self.main_batch,
group=self.main_group
)
def on_release(button: PressTextButton, x, y):
from .sr1_ship import SR1ShipEditor
main_window.remove_sub_screen("DR_game_menu")
main_window.add_sub_screen("SR1_ship", SR1ShipEditor)
logger.info("added SR1_ship screen", tag="dr_game")
...
# self.tester.clockwise = not self.tester.clockwise
# from .sr1_ship import SR1ShipEditor
# main_window.remove_sub_screen("DR_game_menu")
# main_window.add_sub_screen("SR1_ship", SR1ShipEditor)
# logger.info("added SR1_ship screen", tag="dr_game")
self.enter_ship_editor_button.set_handler("on_release", on_release)
# main_window.push_handlers(self.wiki_button1)