mirror of
https://github.com/csd4ni3l/simulator-games.git
synced 2026-01-01 04:13:44 +01:00
Added water splash simulator, made settings saving work for all simulators, moved all the simulators into their respective directories, improved the README, fixed too much logging
This commit is contained in:
33
game/physics_playground/body_inventory.py
Normal file
33
game/physics_playground/body_inventory.py
Normal file
@@ -0,0 +1,33 @@
|
||||
import arcade, arcade.gui, math
|
||||
|
||||
class BodyInventory(arcade.gui.UIGridLayout):
|
||||
def __init__(self, window_width, window_height, selected, items):
|
||||
super().__init__(column_count=2, row_count=math.ceil(len(items) / 2), size_hint=(0.2, 0.1))
|
||||
|
||||
self.items = items
|
||||
self.selected_item = selected
|
||||
self.buttons = {}
|
||||
self.window_width, self.window_height = window_width, window_height
|
||||
|
||||
n = 0
|
||||
for name, image in items.items():
|
||||
self.buttons[name] = self.add(arcade.gui.UITextureButton(width=(window_width * 0.2) / 4, height=(window_width * 0.2) / 4).with_background(texture=arcade.load_texture(image), color=arcade.color.WHITE if name == self.selected_item else arcade.color.TRANSPARENT_BLACK).with_border(color=arcade.color.WHITE), column=n % 2, row=n // 2)
|
||||
self.buttons[name].on_click = lambda event, name=name: self.change_to(name)
|
||||
|
||||
n += 1
|
||||
|
||||
def add_item(self, name, image):
|
||||
if not (len(self.items) + 1 <= (self.column_count * self.row_count)):
|
||||
self.row_count += 1
|
||||
|
||||
self._update_size_hints()
|
||||
|
||||
self.buttons[name] = self.add(arcade.gui.UITextureButton(width=(self.window_width * 0.2) / 4, height=(self.window_width * 0.2) / 4, color=arcade.color.TRANSPARENT_BLACK).with_background(texture=image).with_border(color=arcade.color.WHITE), column=len(self.items) % 2, row=len(self.items) // 2)
|
||||
self.buttons[name].on_click = lambda event, name=name: self.change_to(name)
|
||||
|
||||
self.items[name] = image
|
||||
|
||||
def change_to(self, name):
|
||||
self.buttons[self.selected_item] = self.buttons[self.selected_item].with_background(color=arcade.color.TRANSPARENT_BLACK)
|
||||
self.selected_item = name
|
||||
self.buttons[self.selected_item] = self.buttons[self.selected_item].with_background(color=arcade.color.WHITE)
|
||||
Reference in New Issue
Block a user