master
parent
cf157fce85
commit
11362ede0a
80
main.py
80
main.py
|
@ -190,41 +190,6 @@ class Image:
|
|||
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:
|
||||
def __init__(self, sprite_position, window_position, size):
|
||||
self.sprite_sheet = sprite_sheet
|
||||
|
@ -266,6 +231,46 @@ class Button:
|
|||
else:
|
||||
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
|
||||
def move_win(coordinates):
|
||||
hwnd = pygame.display.get_wm_info()["window"]
|
||||
|
@ -642,7 +647,8 @@ def set_hue():
|
|||
elif settings_data["style"] == STYLE_CHOICES[2]:
|
||||
x = 1
|
||||
|
||||
hue_value = settings_data["gui color"][x]
|
||||
gui = "gui color"
|
||||
hue_value = settings_data[gui][x]
|
||||
keys = pygame.key.get_pressed()
|
||||
if keys[pygame.K_LEFT]:
|
||||
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")
|
||||
|
||||
settings_data["gui color"][x] = hue_value
|
||||
settings_data[gui][x] = hue_value
|
||||
with open(SETTINGS_FILE, "w") as settings_file:
|
||||
json.dump(settings_data, settings_file)
|
||||
|
||||
|
|
Loading…
Reference in New Issue