import pygame class Window: window:None width:int height:int title:str icon_path:str paused:bool pause_menu:None search: pygame.Surface def __init__(self, width:int=640, height:int=480, title="", icon_path=""): self.set_resolution(width,height) self.set_title(title) self.set_icon(icon_path) self.mount() self.paused=False self.pause_menu = pygame.Surface((width, height)) self.pause_menu.set_alpha(128) self.pause_menu.fill((0,0,0)) self.search = pygame.Surface((width, height), flags=pygame.SRCALPHA) def set_resolution(self, width:int, height:int): self.width = width self.height = height def set_title(self, title:str): self.title=title def set_icon(self, icon_path:str): self.icon_path= icon_path def mount(self): self.window = pygame.display.set_mode((self.width,self.height)) pygame.display.set_caption(self.title) if self.icon_path != "": icon = pygame.image.load(self.icon_path) pygame.display.set_icon(icon) def pause(self, paused:bool): self.paused=paused if self.paused: self.window.blit(self.pause_menu,(0,0)) pygame.display.update() def draw_search(self, pos1:list=[0,0], pos2:list=[0,0], tile_size:int=64, map=None, saper=None): map.draw_tiles() map.draw_objects() saper.draw(self.window, 0.1) self.window.blit(self.pause_menu,(0,0)) self.search = pygame.Surface((self.width, self.height), flags=pygame.SRCALPHA) pos1 = [pos1[0]*tile_size+(tile_size/2), pos1[1]*tile_size+(tile_size/2)] pos2 = [pos2[0]*tile_size+(tile_size/2), pos2[1]*tile_size+(tile_size/2)] pygame.draw.line(self.search, pygame.Color(255,0,0), pos1, pos2, 5) n = 10 p1=0 p2=0 p3=0 if (pos2[0] - pos1[0])!=0: a1 = (pos2[1] - pos1[1])/(pos2[0] - pos1[0]) b1 = (pos1[1] - a1*pos1[0]) if a1!=0: a2 = -(1/a1) b2 = pos2[1] - a2*pos2[0] y = a2*(pos2[0]+n)+b2 p1 = (pos2[0]+n, y) y = a2*(pos2[0]-n)+b2 p2 = (pos2[0]-n, y) if pos1[0]>pos2[0]: y = a1*(pos2[0]-n)+b1 p3 = (pos2[0]-n, y) else: y = a1*(pos2[0]+n)+b1 p3 = (pos2[0]+n, y) else: p1 = (pos2[0], pos2[1]+n) p2 = (pos2[0], pos2[1]-n) if pos1[0]>pos2[0]: p3 = (pos2[0]-n, pos2[1]) else: p3 = (pos2[0]+n, pos2[1]) else: p1 = (pos2[0]-n, pos2[1]) p2 = (pos2[0]+n, pos2[1]) if pos1[1]>pos2[1]: p3 = (pos2[0], pos2[1]-n) else: p3 = (pos2[0], pos2[1]+n) pygame.draw.polygon(self.search, pygame.Color(255,0,0), (p1,p2,p3)) self.window.blit(self.search, (0,0)) pygame.display.update()