Small changes to UI

master
En Yi 2019-06-12 17:29:09 +01:00
parent 0523a3c35f
commit 8b83ed7f91
1 changed files with 12 additions and 9 deletions

21
UI.py
View File

@ -12,6 +12,8 @@ class GenericUI:
self.rect = pygame.rect.Rect(x, y, width, height)
self.visible = True
self.clear_colour = (0, 0, 0)
self.outline_colour = (255, 0, 0)
self.text_colour = (255, 255, 255)
self.background = pygame.Surface((self.width, self.height))
self.background.fill(self.clear_colour)
@ -41,8 +43,8 @@ class TextBox(GenericUI):
super().redraw()
if self.visible:
outline = (0, 0, self.rect.w, self.rect.h)
pygame.draw.rect(self.background, (255, 0, 0), outline, self.outline_thickness)
rendered_text = self.font.render(self.text, True, (0, 64, 192)).convert_alpha()
pygame.draw.rect(self.background, self.outline_colour, outline, self.outline_thickness)
rendered_text = self.font.render(self.text, True, self.text_colour).convert_alpha()
rect_center = self.background.get_rect().center
text_rect = rendered_text.get_rect(center=rect_center)
self.background.blit(rendered_text, text_rect)
@ -68,8 +70,8 @@ class Button(TextBox):
super().redraw()
if self.visible:
outline = (0, 0, self.rect.w, self.rect.h)
pygame.draw.rect(self.background, (255, 0, 0), outline, self.outline_thickness)
rendered_text = self.font.render(self.text, True, (0, 64, 192)).convert_alpha()
pygame.draw.rect(self.background, self.outline_colour, outline, self.outline_thickness)
rendered_text = self.font.render(self.text, True, self.text_colour).convert_alpha()
rect_center = self.background.get_rect().center
text_rect = rendered_text.get_rect(center=rect_center)
self.background.blit(rendered_text, text_rect)
@ -86,6 +88,7 @@ class Button(TextBox):
class ScrollList(GenericUI):
selected = Signal()
def __init__(self, x, y, width, height, texts, text_size=25):
super().__init__(x, y, width, height)
@ -96,10 +99,11 @@ class ScrollList(GenericUI):
self.y_offset = 0
self.selected = -1
self.outline_thickness = 3
self.selected_colour = (255, 0, 0)
current_y = self.outline_thickness
for text in texts:
rendered_text = self.font.render(text, True, (0, 64, 192)).convert_alpha()
rendered_text = self.font.render(text, True, self.text_colour).convert_alpha()
text_rect = rendered_text.get_rect()
text_rect.x = 0
text_rect.y = current_y
@ -115,12 +119,12 @@ class ScrollList(GenericUI):
super().redraw()
if self.visible:
outline = (0, 0, self.rect.w, self.rect.h)
pygame.draw.rect(self.background, (255, 0, 0), outline, self.outline_thickness)
pygame.draw.rect(self.background, self.outline_colour, outline, self.outline_thickness)
i = 0
for text, text_rect in zip(self.texts, self.text_rects):
if i == self.selected:
pygame.draw.rect(self.background, (255, 0, 0), text_rect)
rendered_text = self.font.render(text, True, (255, 255, 192)).convert_alpha()
pygame.draw.rect(self.background, self.selected_colour, text_rect)
rendered_text = self.font.render(text, True, self.text_colour).convert_alpha()
self.background.blit(rendered_text, text_rect)
i += 1
@ -133,7 +137,6 @@ class ScrollList(GenericUI):
self.y_offset = max(-self.max_offset, self.y_offset)
self.y_offset = min(0, self.y_offset)
def scroll_down(self, offset=10):
"""
To scroll down, all elements should shift up