My Pygame Game Engine
1from src.scripts.modules.renderer import Screen
2from src.scripts.modules.gui import *
3import os
4
5class gui_test(Screen):
6 def __init__(self, game):
7 self.game = game
8
9 self.button = gui_toggle_button(game)
10
11 self.button.rect.set_x_constraint(percentage_constraint(0.06))
12 self.button.rect.set_y_constraint(percentage_constraint(0.07))
13 self.button.rect.set_height_constraint(percentage_constraint(0.1))
14 self.button.rect.set_width_constraint(aspect_constraint(3))
15 self.button.rect.set_border_radius(5)
16 self.button.rect.set_draw_color(self.game.color_handler.get_rgb('main_menu.bright_bg'))
17
18 self.slider = gui_slider(game, 0, 100)
19
20 self.slider.slider_body.set_x_constraint(percentage_constraint(0.06))
21 self.slider.slider_body.set_y_constraint(percentage_constraint(0.25))
22 self.slider.slider_body.set_width_constraint(pixel_constraint(200))
23 self.slider.slider_body.set_height_constraint(pixel_constraint(5))
24 self.slider.slider_body.set_border_radius(50)
25 self.slider.slider_body.set_draw_color(self.game.color_handler.get_rgb('main_menu.bright_bg'))
26
27 self.slider.slider_head.parent = self.slider.slider_body
28 self.slider.slider_head.set_x_constraint(pixel_constraint(0))
29 self.slider.slider_head.set_y_constraint(center_constraint())
30 self.slider.slider_head.set_width_constraint(pixel_constraint(20))
31 self.slider.slider_head.set_height_constraint(pixel_constraint(20))
32 self.slider.slider_head.set_border_radius(10)
33 self.slider.slider_head.set_draw_color(self.game.color_handler.get_rgb('main_menu.text'))
34
35 self.button2 = gui_toggle_button(game)
36
37 self.button2.rect.set_x_constraint(percentage_constraint(0.06))
38 self.button2.rect.set_y_constraint(percentage_constraint(0.32))
39 self.button2.rect.set_width_constraint(percentage_constraint(0.12))
40 self.button2.rect.set_height_constraint(percentage_constraint(0.1))
41 self.button2.rect.set_outline_radius(5)
42 self.button2.rect.set_border_radius(100)
43 self.button2.rect.set_draw_color(self.game.color_handler.get_rgb('main_menu.bright_bg'))
44
45 self.button_bg = gui_rect(game)
46
47 self.button_bg.parent = self.button2.rect
48 self.button_bg.set_x_constraint(center_constraint())
49 self.button_bg.set_y_constraint(center_constraint())
50 self.button_bg.set_width_constraint(percentage_constraint(0.95))
51 self.button_bg.set_height_constraint(percentage_constraint(1))
52 self.button_bg.set_border_radius(100)
53 self.button_bg.set_draw_color(self.game.color_handler.get_rgb('main_menu.bright_bg'))
54
55 self.button_inside_rect = gui_rect(game)
56
57 self.button_inside_rect.parent = self.button2.rect
58 self.button_inside_rect.set_x_constraint(percentage_constraint(0.05))
59 self.button_inside_rect.set_y_constraint(center_constraint())
60 self.button_inside_rect.set_width_constraint(aspect_constraint(1))
61 self.button_inside_rect.set_height_constraint(percentage_constraint(0.8))
62 self.button_inside_rect.set_border_radius(30)
63 self.button_inside_rect.set_draw_color(self.game.color_handler.get_rgb('main_menu.bright_bg'))
64
65 def update(self):
66 self.button.update()
67 self.slider.update()
68 self.button2.update()
69 self.button_bg.update()
70 self.button_inside_rect.update()
71
72 self.button.rect.set_draw_color(self.game.color_handler.get_rgb('main_menu.bright_bg'))
73 if self.button.hover:
74 self.button.rect.tween_to(percentage_constraint(0.08), percentage_constraint(0.07), 24)
75 self.button.rect.set_draw_color(self.game.color_handler.get_rgb('main_menu.bright_bg_2'))
76 else:
77 self.button.rect.tween_to(percentage_constraint(0.06), percentage_constraint(0.07), 24)
78
79 if self.button.toggled:
80 self.button.rect.set_draw_color(self.game.color_handler.get_rgb('main_menu.text'))
81 self.button.rect.tween_to(percentage_constraint(0.08), percentage_constraint(0.07), 24)
82
83 if self.button2.hover:
84 self.button_inside_rect.set_draw_color(self.game.color_handler.get_rgb('main_menu.bright_bg_2'))
85 else:
86 self.button_inside_rect.set_draw_color(self.game.color_handler.get_rgb('main_menu.bright_bg'))
87
88 #self.button_inside_rect.tween_to(percentage_constraint(0.05), center_constraint(), 6)
89 self.button_inside_rect.tween_size(aspect_constraint(1), percentage_constraint(0.8), 12)
90 self.button_bg.set_draw_color(self.game.color_handler.get_rgb('switch.off'))
91 if self.button2.toggled:
92 self.button_bg.set_draw_color(self.game.color_handler.get_rgb('switch.on'))
93 self.button_inside_rect.tween_size(percentage_constraint(0.9), percentage_constraint(0.8), 12)
94 #self.button_inside_rect.tween_to(percentage_constraint(0.57), center_constraint(), 6)
95
96 def render(self):
97 self.game.renderer.screen.fill(self.game.color_handler.get_rgb('main_menu.background'))
98 self.button_bg.render()
99 self.button.render()
100 self.slider.render()
101 self.button2.render()
102 self.button_inside_rect.render()
103 self.game.renderer.screen.blit(self.game.font_handler.render(str(int(self.slider.value)), 'default', 32, self.game.color_handler.get_rgb('main_menu.text')), (300, 160))
104 #value = int((self.slider_head.x - self.slider_body.x) / (self.slider_body.width / 100))
105 #self.game.renderer.screen.blit(self.game.font_handler.render(str(value), 'default', 48, self.game.color_handler.get_rgb('main_menu.text')), (20, 20))