elukjanovica 2024-03-02 09:29:22 +02:00
parent cf157fce85
commit 11362ede0a
1 changed files with 43 additions and 37 deletions

80
main.py
View File

@ -190,41 +190,6 @@ class Image:
screen.blit(self.img, self.rect) screen.blit(self.img, self.rect)
class Slider:
def __init__(self, white_line, blue_line, slider_button, position, value_range):
self.white_line = white_line
self.blue_line = blue_line
self.slider_button = slider_button
self.position = position
self.value_range = value_range
self.value = value_range[0]
self.dragging = False
def update_position(self, position):
self.position = position
self.white_line.position = position
self.blue_line.position = position
self.slider_button.window_position = (position[0], position[1] + (self.slider_button.size[1] - self.white_line.rect.height) // 2)
def blit(self, screen):
screen.blit(self.white_line.img, self.white_line.rect)
screen.blit(self.blue_line.img, self.blue_line.rect)
self.slider_button.draw(screen)
def handle_event(self, event):
if event.type == pygame.MOUSEBUTTONDOWN and event.button == 1:
if self.slider_button.rect.collidepoint(event.pos):
self.dragging = True
elif event.type == pygame.MOUSEBUTTONUP and event.button == 1:
self.dragging = False
elif event.type == pygame.MOUSEMOTION and self.dragging:
mouse_x = max(self.white_line.rect.x, min(event.pos[0], self.white_line.rect.x + self.white_line.rect.width))
value = ((mouse_x - self.white_line.rect.x) / (self.white_line.rect.width - self.slider_button.rect.width)) * 360
self.white_line.update_value(value)
self.blue_line.update_value(value)
self.slider_button.rect.x = mouse_x - self.slider_button.rect.width // 2
class Button: class Button:
def __init__(self, sprite_position, window_position, size): def __init__(self, sprite_position, window_position, size):
self.sprite_sheet = sprite_sheet self.sprite_sheet = sprite_sheet
@ -266,6 +231,46 @@ class Button:
else: else:
screen.blit(self.img, self.rect) screen.blit(self.img, self.rect)
class Slider:
def __init__(self, position, value_range, aspect):
self.second_x= 80*aspect
self.slider_pos = self.handle_event()
self.first_line = Image((135, 38), position, (80, 12))
self.second_line = Image((135, 53), position, (self.second_x, 12))
self.slider_button = Button((218, 38), self.slider_pos, (10, 16))
self.position = position
self.value_range = value_range
self.value = value_range[0]
self.dragging = False
def handle_event(self):
self.second_x
self.slider_pos[0] = self.position[0] #not really, 1. it takes value_range and current value, 2. it has to be movable only in slider x rect
self.slider_pos[1] = self.position[1]+2
self.dragging = True
mouse_x = max(self.white_line.rect.x, min(event.pos[0], self.white_line.rect.x + self.white_line.rect.width))
value = ((mouse_x - self.white_line.rect.x) / (self.white_line.rect.width - self.slider_button.rect.width)) * 360
self.white_line.update_value(value)
self.blue_line.update_value(value)
self.slider_button.rect.x = mouse_x - self.slider_button.rect.width // 2
return self.slider_pos
def update_position(self, position):
self.position = position
self.white_line.position = position
self.blue_line.position = position
self.slider_button.window_position = (position[0], position[1] + (self.slider_button.size[1] - self.white_line.rect.height) // 2)
def blit(self, screen):
screen.blit(self.white_line.img, self.white_line.rect)
screen.blit(self.blue_line.img, self.blue_line.rect)
self.slider_button.draw(screen)
# Ability to move window # Ability to move window
def move_win(coordinates): def move_win(coordinates):
hwnd = pygame.display.get_wm_info()["window"] hwnd = pygame.display.get_wm_info()["window"]
@ -642,7 +647,8 @@ def set_hue():
elif settings_data["style"] == STYLE_CHOICES[2]: elif settings_data["style"] == STYLE_CHOICES[2]:
x = 1 x = 1
hue_value = settings_data["gui color"][x] gui = "gui color"
hue_value = settings_data[gui][x]
keys = pygame.key.get_pressed() keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]: if keys[pygame.K_LEFT]:
hue_value = (hue_value - 1) % 360 hue_value = (hue_value - 1) % 360
@ -653,7 +659,7 @@ def set_hue():
pygame.image.save(sprite_sheet.sheet, MAIN_PATH + SIZE_PATH + str(INT) + STYLE_PATH + "spritesheet.png") pygame.image.save(sprite_sheet.sheet, MAIN_PATH + SIZE_PATH + str(INT) + STYLE_PATH + "spritesheet.png")
settings_data["gui color"][x] = hue_value settings_data[gui][x] = hue_value
with open(SETTINGS_FILE, "w") as settings_file: with open(SETTINGS_FILE, "w") as settings_file:
json.dump(settings_data, settings_file) json.dump(settings_data, settings_file)