Beispiel #1
0
    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())
Beispiel #2
0
    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)
Beispiel #3
0
 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)
Beispiel #5
0
    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)