def escrever(self, texto, tamanho=24, cor=model.AMARELO, nome_fonte='arial', **kwargs): pygame.font.init() fonte = pygame.font.SysFont(nome_fonte, tamanho, True, False) imagem_texto = fonte.render(texto, True, cor) direcao = kwargs.get('posicao') if direcao is None: eixo_x = kwargs.get('eixo_x') eixo_y = kwargs.get('eixo_y') posicao = model.Eixo(eixo_x=eixo_x, eixo_y=eixo_y) else: if direcao == model.CENTRO: largura_central = (self.tela.get_width() - imagem_texto.get_width()) // 2 altura_central = (self.tela.get_height() - imagem_texto.get_height()) // 2 posicao = model.Eixo(eixo_x=largura_central, eixo_y=altura_central) self.tela.blit(imagem_texto, posicao())
def pintar(self, tela): # Desenhar corpo pygame.draw.circle(tela, model.AMARELO, (self.centro.eixo_x, self.centro.eixo_y), self.raio) # Desenhar boca self.abertura_boca += self.velocidade_abertura_boca if self.abertura_boca > self.raio: self.velocidade_abertura_boca = -model.VELOCIDADE elif self.abertura_boca < 0: self.velocidade_abertura_boca = model.VELOCIDADE canto_da_boca = model.Eixo(eixo_x=self.centro.eixo_x, eixo_y=self.centro.eixo_y) labio_superior = model.Eixo(eixo_x=self.centro.eixo_x + self.raio, eixo_y=self.centro.eixo_y - self.abertura_boca) labio_inferior = model.Eixo(eixo_x=self.centro.eixo_x + self.raio, eixo_y=self.centro.eixo_y + self.abertura_boca) pontos_boca = [canto_da_boca(), labio_superior(), labio_inferior()] pygame.draw.polygon(tela, model.PRETO, pontos_boca) # Desenhar olho raio_olho = self.raio // 10 eixo_olho = model.Eixo( eixo_x=int(self.centro.eixo_x + self.raio * 0.33), eixo_y=int(self.centro.eixo_y - self.raio * 0.70)) pygame.draw.circle(tela, model.PRETO, eixo_olho(), raio_olho)
def __init__(self, tamanho, coluna, linha, eixo_x, eixo_y, velocidade_eixo_x=0, velocidade_eixo_y=0): self.tamanho = tamanho self.raio = self.tamanho // 2 self.posicao = model.Posicao(linha=linha, coluna=coluna) self.centro = model.Eixo(eixo_x=eixo_x, eixo_y=eixo_y) self.velocidade = model.Eixo(eixo_x=velocidade_eixo_x, eixo_y=velocidade_eixo_y) self.intencao_movimento = model.Posicao(linha=self.posicao.linha, coluna=self.posicao.coluna) self.abertura_boca = 0 self.velocidade_abertura_boca = model.VELOCIDADE self.velocidade_boca_antes_da_pausa = self.velocidade_abertura_boca
def pintar(self, tela): fatia = self.tamanho // 8 pixel = model.Eixo(eixo_x=int(self.posicao.coluna * self.tamanho), eixo_y=int(self.posicao.linha * self.tamanho)) # Desenhar corpo contorno = [(pixel.eixo_x, pixel.eixo_y + self.tamanho), (pixel.eixo_x + fatia, pixel.eixo_y + fatia * 2), (pixel.eixo_x + fatia * 3, pixel.eixo_y + fatia // 2), (pixel.eixo_x + fatia * 4, pixel.eixo_y), (pixel.eixo_x + fatia * 5, pixel.eixo_y), (pixel.eixo_x + fatia * 6, pixel.eixo_y + fatia // 2), (pixel.eixo_x + fatia * 7, pixel.eixo_y + fatia * 2), (pixel.eixo_x + self.tamanho, pixel.eixo_y + self.tamanho), (pixel.eixo_x + fatia * 8, pixel.eixo_y + fatia * 7), (pixel.eixo_x + fatia * 7, pixel.eixo_y + self.tamanho), (pixel.eixo_x + fatia * 6, pixel.eixo_y + fatia * 7), (pixel.eixo_x + fatia * 5, pixel.eixo_y + self.tamanho), (pixel.eixo_x + fatia * 4, pixel.eixo_y + fatia * 7), (pixel.eixo_x + fatia * 3, pixel.eixo_y + self.tamanho), (pixel.eixo_x + fatia * 2, pixel.eixo_y + fatia * 7), (pixel.eixo_x + fatia, pixel.eixo_y + self.tamanho)] draw.polygon(tela, self.cor, contorno) # Desenhar olhos olho_raio_externo = fatia olho_raio_interno = fatia // 2 olho_esquerdo_centro = model.Eixo(eixo_x=int(pixel.eixo_x + fatia * 2.5), eixo_y=int(pixel.eixo_y + fatia * 3)) olho_direito_centro = model.Eixo(eixo_x=int(pixel.eixo_x + fatia * 5.5), eixo_y=int(pixel.eixo_y + fatia * 3)) draw.circle(tela, model.BRANCO, olho_esquerdo_centro(), olho_raio_externo) draw.circle(tela, model.PRETO, olho_esquerdo_centro(), olho_raio_interno) draw.circle(tela, model.BRANCO, olho_direito_centro(), olho_raio_externo) draw.circle(tela, model.PRETO, olho_direito_centro(), olho_raio_interno)
def pintar_linha(self, indice_linha, linha): for indice_coluna, coluna in enumerate(linha): local = model.Eixo(eixo_x=indice_coluna * self.tamanho, eixo_y=indice_linha * self.tamanho) pontos_retangulo = local.eixo_x, local.eixo_y, self.tamanho, self.tamanho metade_tamanho = self.tamanho // 2 cor = model.PRETO if coluna == 2: cor = model.AZUL pygame.draw.rect(self.tela, cor, pontos_retangulo) if coluna == 1: pygame.draw.circle(self.tela, model.BRANCO, (local.eixo_x + metade_tamanho, local.eixo_y + metade_tamanho), self.tamanho // 10)