Eu passo o screen como argumento, mas ele entende como se eu tivesse passando o self. Tentei bastante mas não identifiquei o erro.
import pygame
pygame.init()
screen = pygame.display.set_mode((800, 600), 0)
preto=(0,0,0)
amarelo=(255,255,0)
vermelho=(255,0,0)
velocidade=0.1
class Pacman:
def __init__(self):
self.centro_x=400
self.centro_y = 300
self.tamanho=100
self.raio= self.tamanho//2
self.velocidade_x=velocidade
self.velocidade_y =velocidade
def regras(self):
self.centro_x+=self.velocidade_x
if self.centro_x+self.raio>800:
self.velocidade_x=-velocidade
if self.centro_x-self.raio<0:
self.velocidade_x=velocidade
self.centro_y += self.velocidade_y
if self.centro_y + self.raio > 600:
self.velocidade_y =-velocidade
if self.centro_y - self.raio < 0:
self.velocidade_y =velocidade
def face(self,tela):
pygame.draw.circle(tela,vermelho, (self.centro_x,self.centro_y), self.raio, 0)
# Desenho da boca do Pacman
canto_boca = (self.centro_x, self.centro_y)
labio_superior = (self.centro_x + self.raio, self.centro_y - self.raio)
labio_inferior = (self.centro_x + self.raio, self.centro_y)
lista_de_pontos=[canto_boca,labio_inferior,labio_superior]
pygame.draw.polygon(tela, preto, lista_de_pontos, 0)
# Olho do Pacman
olho_x = int(self.centro_x + self.raio / 3)
olho_y = int(self.centro_y - self.raio * 0.70)
olho_raio=int(self.raio/10)
pygame.draw.circle(tela,preto,(olho_x,olho_y),olho_raio,0)
#pygame.display.update()
#if __name__ == "__main__":
# pacman=Pacman()
while True:
# breakpoint()
Pacman.face(screen)
pygame.display.update()
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()