My Pygame Game Engine
1from src.scripts.modules.renderer import Screen
2from src.scripts.modules.gui import *
3import os
4
5class level_editor_screen(Screen):
6 def __init__(self, game):
7 self.game = game
8
9 self.surface = pygame.Surface((16, 16))
10 self.surface.fill((0, 0, 0))
11
12 self.save_button = gui_press_button(game)
13 self.save_button.rect.set_pos(percentage_constraint(0.6), percentage_constraint(0.05), 1)
14 self.save_button.rect.set_size(percentage_constraint(0.2), percentage_constraint(0.1), 1)
15 self.save_button.rect.set_border_radius(5)
16
17 self.save_button_text = gui_text(game)
18 self.save_button_text.text = "Save"
19 self.save_button_text.parent = self.save_button.rect
20 self.save_button_text.set_size_constraint(percentage_constraint(0.8))
21 self.save_button_text.set_x_constraint(center_constraint())
22 self.save_button_text.set_y_constraint(center_constraint())
23
24 def update(self):
25 mx, my = pygame.mouse.get_pos()
26 mx = mx / 45
27 my = my / 45
28 if self.game.input.is_mouse_button_pressed(0):
29 pygame.draw.rect(self.surface, (255, 255, 255), ((mx, my), (1, 1)))
30
31 if self.game.input.is_mouse_button_pressed(2):
32 pygame.draw.rect(self.surface, (0, 0, 0), ((mx, my), (1, 1)))
33
34 self.save_button.rect.set_color((47, 93, 98), 4)
35 if self.save_button.hover:
36 self.save_button.rect.set_color((94, 139, 126), 2)
37
38 if self.save_button.pressed:
39 self.save_button.rect.set_color((255, 255, 255), 2)
40 with open(os.path.join('src', 'resources', 'main', 'data', 'levels', 'level'), 'w') as file:
41 for i in range(16):
42 for j in range(16):
43 pass
44 file.write(self.surface)
45
46 self.save_button.update()
47 self.save_button_text.update()
48
49 def render(self):
50 self.game.renderer.main_surface.fill((71, 89, 126))
51
52 self.save_button.render()
53 self.save_button_text.render()
54
55 self.game.renderer.main_surface.blit(pygame.transform.scale(self.surface, (720, 720)), (0, 0))