• Jogos
  • 06. Colisões

Verifica cliques#

Neste exercício criaremos "botões" usando pygame. Para isso, precisamos desenvolver funções para checar se um ponto está dentro de um retângulo e de um círculo. Usando essa função, checaremos se o ponteiro do mouse está dentro dos 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 e False caso contrário.
  • 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 e False caso contrário.

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.