Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida em relação à movimentação do Pacman

Oi, alguém poderia me ajudar a identificar o erro por favor. A minha versão do Python é a 3.7 . O Pycharm aponta o erro como sendo sintaxe inválida no "canto_boca = (self.centro_x, self.centro_y)", não entendo o porquê.

import pygame

pygame.init()

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

amarelo= (225,255,0)

preto= (0,0,0)

class Pacman: def init(self):

    self.centro_x = 400
    self.centro_y = 300
    self.tamanho = 50
    self.vel_x = 0.8
    self.vel_y = 0.8
    self.raio = int(self.tamanho/2)

def calcular_regras(self):
    self.centro_x = self.centro_x + self.vel_x 
    self.centro_y = self.centro_y + self.vel_y

    if self.centro_x + self.raio > 800:
        self.vel_x = -0.8

    if self.centro_x - self.raio < 0:
        self.vel_x = 0.8

    if self.centro_y + self.raio > 600:
        self.vel_y = -0.8

    if self.centro_y - self.raio < 0:
        self.vel_y = 0.8

def pintar(self,tela):

    #Desenhando Pacman
    pygame.draw.circle(tela,amarelo,(int(self.centro_x),int(self.centro_y),self.raio,0)

    #Desenhando a boca
    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)
    pontos = [canto_boca, labio_superior, labio_inferior]
    pygame.draw.polygon(tela, preto, pontos, 0)

    #Desenho dos olhos
    olho_x = int(self.centro_x + self.raio / 3)
    olho_y = int(self.centro_y - self.raio * 0.70)
    olho_raio = int(self.raio/8)
    pygame.draw.circle(tela,preto,(olho_x,olho_y),olho_raio,0)

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

while True:
    #Calcular as regras
    pacman.calcular_regras()

    #Pintando a tela
    screen.fill(preto)
    pacman.pintar(screen)
    pygame.display.update()

    #Capturar os eventos
    for eventos in pygame.event.get():
        if eventos.type == pygame.QUIT:
            exit()
1 resposta
solução!

Oiii Alvaro, tudo bem?

Este erro está acontecendo por causa de um fechamento errado dos parênteses:

#Desenhando Pacman
pygame.draw.circle(tela,amarelo,(int(self.centro_x),int(self.centro_y),self.raio,0)

O correto é:

#Desenhando Pacman
pygame.draw.circle(tela,amarelo,(int(self.centro_x),int(self.centro_y)),self.raio,0)

Com essa alteração, creio que obterá êxito.

Qualquer dúvida é só falar. Abraços e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software