Compare commits
2 Commits
637c3e5eca
...
85a84cc1df
Author | SHA1 | Date | |
---|---|---|---|
85a84cc1df | |||
d216939171 |
@ -95,6 +95,7 @@ class SR1ShipRender(BaseScreen):
|
||||
self.height = main_window.height
|
||||
|
||||
self.main_batch = Batch()
|
||||
self.ships_buttons_batch = Batch()
|
||||
self.group_camera = CenterGroupCamera(
|
||||
window=main_window,
|
||||
order=10,
|
||||
@ -196,13 +197,13 @@ class SR1ShipRender(BaseScreen):
|
||||
main_window.push_handlers(self.select_ship_button)
|
||||
|
||||
# 扫描所有飞船
|
||||
self.show_ships_buttons = True
|
||||
self.show_ships_buttons = False
|
||||
self.ships_buttons_w = 150
|
||||
self.ships_buttons_h = 30
|
||||
self.ships_buttons_begin_x = self.width - self.ships_buttons_w
|
||||
self.ships_buttons_begin_y = 0
|
||||
self.ships_buttons_end_x = self.width
|
||||
self.ships_buttons_end_y = self.height
|
||||
self.ships_buttons_end_y = self.height - self.ships_buttons_h * 5
|
||||
|
||||
ships_path = "./ships/"
|
||||
ships_files = self.scan_all_ships_list(ships_path)
|
||||
@ -218,7 +219,7 @@ class SR1ShipRender(BaseScreen):
|
||||
width=self.ships_buttons_w,
|
||||
height=self.ships_buttons_h,
|
||||
text=ships_files[i][8:],
|
||||
batch=self.main_batch,
|
||||
batch=self.ships_buttons_batch,
|
||||
group=self.ships_buttons_group,
|
||||
draw_theme=MinecraftWikiButtonTheme,
|
||||
)
|
||||
@ -233,7 +234,7 @@ class SR1ShipRender(BaseScreen):
|
||||
self.ships_buttons_end_y,
|
||||
width=5,
|
||||
color=(100, 100, 100, 255),
|
||||
batch=self.main_batch,
|
||||
batch=self.ships_buttons_batch,
|
||||
group=self.ships_buttons_group,
|
||||
)
|
||||
|
||||
@ -246,11 +247,12 @@ class SR1ShipRender(BaseScreen):
|
||||
y2=self.ships_buttons_end_y,
|
||||
width=20,
|
||||
color=(200, 200, 200, 255),
|
||||
batch=self.main_batch,
|
||||
batch=self.ships_buttons_batch,
|
||||
group=self.ships_buttons_group,
|
||||
)
|
||||
|
||||
self.ships_buttons_group.visible = False
|
||||
# self.ships_buttons_group.visible = False
|
||||
self.show_ships_buttons = True
|
||||
|
||||
@property
|
||||
def size(self) -> Tuple[int, int]:
|
||||
@ -475,6 +477,8 @@ class SR1ShipRender(BaseScreen):
|
||||
self.window_pointer.height,
|
||||
)
|
||||
self.main_batch.draw() # use group camera, no need to with
|
||||
if self.show_ships_buttons:
|
||||
self.ships_buttons_batch.draw()
|
||||
gl.glViewport(0, 0, self.window_pointer.width, self.window_pointer.height)
|
||||
gl.glScissor(0, 0, self.window_pointer.width, self.window_pointer.height)
|
||||
gl.glDisable(gl.GL_SCISSOR_TEST)
|
||||
@ -563,8 +567,8 @@ class SR1ShipRender(BaseScreen):
|
||||
min_y = min(min_y, ship_button.y)
|
||||
max_y = max(max_y, ship_button.y)
|
||||
|
||||
if max_y + scroll_y * 50 <= self.height - self.ships_buttons_h:
|
||||
scroll_y = (self.height - self.ships_buttons_h - max_y) / 50
|
||||
if max_y + scroll_y * 50 <= self.ships_buttons_end_y - self.ships_buttons_h:
|
||||
scroll_y = (self.ships_buttons_end_y - self.ships_buttons_h - max_y) / 50
|
||||
|
||||
if min_y + scroll_y * 50 >= 0:
|
||||
scroll_y = (0 - min_y) / 50
|
||||
@ -857,12 +861,19 @@ class PressOpenShipButton(PressTextButton):
|
||||
return self.y
|
||||
|
||||
def on_mouse_release(self, x, y, buttons, modifiers):
|
||||
if self.pressed and (x, y) in self:
|
||||
if self.draw_theme:
|
||||
self.draw_theme.on_disable(self)
|
||||
else:
|
||||
self.back_rec.color = self.touched_color
|
||||
self.pressed = False
|
||||
if (
|
||||
self.parent_window.show_ships_buttons
|
||||
and x >= self.parent_window.ships_buttons_begin_x
|
||||
and x <= self.parent_window.ships_buttons_end_x
|
||||
and y >= self.parent_window.ships_buttons_begin_y
|
||||
and y <= self.parent_window.ships_buttons_end_y
|
||||
):
|
||||
if self.pressed and (x, y) in self:
|
||||
if self.draw_theme:
|
||||
self.draw_theme.on_disable(self)
|
||||
else:
|
||||
self.back_rec.color = self.touched_color
|
||||
self.pressed = False
|
||||
|
||||
self.parent_window.begin_ship_render_from_path(self.ship_path)
|
||||
logger.info("加载飞船from " + self.ship_path)
|
||||
self.parent_window.begin_ship_render_from_path(self.ship_path)
|
||||
logger.info("加载飞船from " + self.ship_path)
|
||||
|
Loading…
Reference in New Issue
Block a user