• Jogos
  • 03. Colisões e som
  • Colisão Ponto-Retângulo/Círculo

Colisão Ponto-Retângulo/Círculo#

Neste exercício iremos criar "Botões" usando pygame. Criaremos funções para checar se um ponto está dentro de retângulos ou círculos e checaremos se o ponteiro do mouse está dentro dos nossos botões.

Como primeiro passo, implemente as seguintes funções no arquivo jogo.py:

  • colisao_ponto_circulo(ponto_x, ponto_y, circulo_x, circulo_y, circulo_raio): recebe as coordenadas do ponto, do centro do círculo e o raio do círculo e retorna True se o ponto estiver dentro do circulo
  • colisao_ponto_retangulo(ponto_x, ponto_y, rect_x, rect_y, rect_w, rect_h): recebe as coordenadas do ponto, o canto superior esquerdo do retângulo, a largura e altura e retorna True se o ponto estiver dentro do retângulo.

Estas funções tem testes automatizados.

Com essas funções prontas, use-as na função atualiza_estado e modifique a função desenha para pintar as formas de azul quando o usuário apertar o botão do mouse dentro delas. Quando o usuário soltar o mouse as formas devem voltar a ter cor vermelha.

Esta parte não tem testes, você deve verificar visualmente o resultado. Dica: você pode utilizar a variável state para armazenar outras informações, como a cor atual de cada forma.