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

preciso de ajuda

O desafio agora é o seguinte. Se andarmos com o ponteiro do mouse sobre a tela enquanto o botão esquerdo é pressionado, vamos desenhar um círculo. Isso significa que enquanto não soltarmos o botão esquerdo, desenharemos um círculo ao lado do outro, que na verdade dará um efeito que estamos passando um pincel na tela. Se soltarmos o botão esquerdo, o ato de mover o mouse sob a tela não deverá desenhar nada. No final, queremos um efeito parecido com ferramentas como Paint Brush ou Photoshop, que permite o usuário desenhar na tela

Preciso de ajuda pra fazer isto

1 resposta
solução!
def desenha_circulo(x, y, raio):
  """Desenha um círculo nas coordenadas especificadas.

  Args:
    x: Coordenada x do centro do círculo.
    y: Coordenada y do centro do círculo.
    raio: Raio do círculo.
  """

  pygame.draw.circle(tela, cor, (x, y), raio)

def desenha_pincel(x, y, raio):
  """Desenha um círculo contínuo enquanto o botão esquerdo do mouse estiver pressionado.

  Args:
    x: Coordenada x do centro do círculo.
    y: Coordenada y do centro do círculo.
    raio: Raio do círculo.
  """

  global estado_botao

  if estado_botao:
    desenha_circulo(x, y, raio)
    x += raio

def main():
  """Função principal."""

  global estado_botao

  pygame.init()
  tela = pygame.display.set_mode((640, 480))
  cor = (255, 0, 0)
  raio = 10

  estado_botao = False

  while True:
    for evento in pygame.event.get():
      if evento.type == pygame.QUIT:
        pygame.quit()
        exit()
      elif evento.type == pygame.MOUSEBUTTONDOWN and evento.button == 1:
        estado_botao = True
      elif evento.type == pygame.MOUSEBUTTONUP and evento.button == 1:
        estado_botao = False

    tela.fill((0, 0, 0))
    desenha_pincel(pygame.mouse.get_pos()[0], pygame.mouse.get_pos()[1], raio)
    pygame.display.update()

if __name__ == "__main__":
  main()

Esse código funciona da seguinte forma:

A função desenha_circulo() desenha um círculo nas coordenadas especificadas. A função desenha_pincel() desenha um círculo contínuo enquanto o botão esquerdo do mouse estiver pressionado. A variável estado_botao armazena o estado do botão esquerdo do mouse. O loop infinito verifica se o botão esquerdo do mouse está pressionado. Se o botão esquerdo do mouse estiver pressionado, a função desenha_pincel() é chamada. A posição do cursor do mouse é atualizada. O loop é finalizado. Para testar o código, basta abrir o arquivo desenha_pincel.py em um editor de texto e executá-lo. Em seguida, clique e arraste o mouse na tela para desenhar um círculo.