Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Atribute Error

Está ocorrendo erro de atribuição na linha do código marcada. não consegui de forma nenhuma identificar correção

import pygame

pygame.init()

screen = pygame.display.set_mode((800, 600), 0) AMARELO = (255, 255, 0) PRETO = (0, 0, 0)

class Pacman: def int(self): self.centro_x = 400 self.centro_y = 300 self.tamanho = 50 self.raio = self.tamanho // 2

def pintar(self, tela):
    # desenhando corpo do pacman:

pygame.draw.circle(tela, AMARELO, (self.centro_x, self.centro_y), self.raio, 0)

    # desenhando a boca do pacman:
    canto_boca = (self.centro_x, self.centro_y)
    labio_sup = (self.centro_x + self.raio, self.centro_y - self.raio)
    labio_inf = (self.centro_x + self.raio, self.centro_y)
    pontos = [canto_boca, labio_sup, labio_inf]
    pygame.draw.polygon(tela, PRETO, pontos, 0)

    # desenhando o olho do pacman:
    olho_x = int(self.centro_x + self.raio / 2)
    olho_y = int(self.centro_y - self.raio / 2)
    olho_raio = int(self.raio / 10)
    pygame.draw.circle(tela, PRETO, (olho_x, olho_y), olho_raio, 0)

if name == "main": pacman = Pacman()

while True:
    # Pintar a tela
    pacman.pintar(screen)
    pygame.display.update()

    for e in pygame.event.get():
        if e.type == pygame.QUIT:
            exit()
2 respostas
solução!

Não testei, mas tem um problema no construtor da sua classe. O construtor é a função __init__(self), que é chamada qndo seu objeto é construido e define as variáveis internas dele. Por isso dá um attribute error, pq os atributos não foram inicializados corretamente.

class Pacman:
    # def int(self): -> mudar para:
    def __init__(self):
        self.centro_x = 400
        self.centro_y = 300
        self.tamanho = 50
        self.raio = self.tamanho // 2

ps: de uma revisada no seu post depois de postar para ver se seu código formatado direitinho, facilita bastante a leitura de quem for tentar ajudar ☺️

nossa que vacilo, passei pelo código várias vezes e nao enxerguei o erro de digitação obrigado Pedro. ainda nao sei postar corretamente o código no fórum, vou procurar melhorar.