From d6daa2ef492230f868517f581a2d74d1b7cc7863 Mon Sep 17 00:00:00 2001 From: Luis Rodrigues Date: Sat, 4 Apr 2026 21:43:03 +0100 Subject: [PATCH] =?UTF-8?q?corrigir=20pequena=20falha=20que=20continua=20a?= =?UTF-8?q?=20apresentar=20info=20no=20frm=5Finfo=5Fpos=20depois=20de=20fa?= =?UTF-8?q?zer=20refresh=20ao=20mapa=20ou=20alterar=20a=20dimens=C3=A3o=20?= =?UTF-8?q?do=20mapa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/gui.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/modules/gui.py b/modules/gui.py index baebd26..1d21e19 100644 --- a/modules/gui.py +++ b/modules/gui.py @@ -2,6 +2,7 @@ import sys import random from types import NoneType import pygame as pg +from pygame.sprite import Sprite from modules.agente import Agente from modules.mapa import Mapa import modules.estrategia as ModEstrategia @@ -16,6 +17,13 @@ sep_janelas: int = 10 caminho_fonte = pg.font.match_font("roboto") +# classe ElementoUI para gerir elementos de interface (botoes, img, etc) +class ElementoUI(Sprite): + def __init__(self): + Sprite.__init__(self) + self.pos: tuple[int, int] + + # classe Frame para gerir diferentes frames dentro da janela principal class Frame: def __init__( @@ -224,16 +232,14 @@ def mostrarFrameAccoes(janela: pg.Surface, frm: Frame) -> None: img_restart, ( frm.posicao[0] + ((sep_janelas + img_stop.get_size()[0]) * 3), - frm.posicao[1] + - ((frm.tamanho[1] - img_restart.get_size()[1]) / 2), + frm.posicao[1] + ((frm.tamanho[1] - img_restart.get_size()[1]) / 2), ), ) janela.blit( img_settings, ( frm.posicao[0] + ((sep_janelas + img_restart.get_size()[0]) * 5), - frm.posicao[1] + - ((frm.tamanho[1] - img_settings.get_size()[1]) / 2), + frm.posicao[1] + ((frm.tamanho[1] - img_settings.get_size()[1]) / 2), ), ) @@ -281,6 +287,8 @@ def main(mapa: Mapa | None, tamanho_mapa: tuple[int, int]): tamanho_mapa = (novo_tamanho, novo_tamanho) mapa = Mapa(tamanho_mapa) popularMapa(mapa) + quadrado_seleccionado = None + frm_info_pos.desenhar(janela, 5, 10) # correr proxima iteração com 'n' (next) if event.key == pg.K_n: ModInteraccoes.correrInteraccoesEntreAgentes(mapa) @@ -288,6 +296,8 @@ def main(mapa: Mapa | None, tamanho_mapa: tuple[int, int]): if event.key == pg.K_r: mapa = Mapa(tamanho_mapa) popularMapa(mapa) + quadrado_seleccionado = None + frm_info_pos.desenhar(janela, 5, 10) if event.type == pg.MOUSEBUTTONDOWN: # botao 1 do rato clicado, seleccionar ou tirar selecao if pg.mouse.get_pressed(num_buttons=3)[0]: