Você está aqui: Python ::: Pygame ::: Mouse e Teclado |
Como capturar o evento MOUSEBUTTONDOWN na janela do Pygame - Eventos do mouse em PygameQuantidade de visualizações: 1434 vezes |
Na maioria dos jogos desenvolvidos em Python e Pygame nós precisamos lidar com os eventos do mouse e teclado. Nesta dica mostrarei como detectar o evento MOUSEBUTTONDOWN, qual botão que foi pressionado e as coordenadas x e y do mouse no momento do evento. Para começar, veja uma aplicação Pygame completa que nos avisa quando o evento MOUSEBUTTONDOWN ocorre: # vamos importar as bibliotecas necessárias import pygame, sys from pygame.locals import * # inicializa a biblioteca pygame.init() # obtém a superfície do jogo e define o tamanho da tela DISPLAYSURF = pygame.display.set_mode((600, 600)) # vamos definir o título da janela do jogo pygame.display.set_caption('Meu Jogo de Cartas') # e aqui nós entramos no loop do game while True: # monitoramos os eventos for evento in pygame.event.get(): # se o evento foi um pedido para sair if evento.type == QUIT: # fechamos a tela do jogo pygame.quit() # e saimos do programa sys.exit() # é um evento de pressionamento do botão do mouse? if evento.type == MOUSEBUTTONDOWN: print("O botão do mouse foi pressionado.") # redesenha a tela continuamente pygame.display.update() Ao executar este código e pressionarmos o botão do mouse, a seguinte mensagem será exibida no console: O botão do mouse foi pressionado. Agora vamos avançar um pouco mais e capturar o botão que o usuário pressionou. Veja a nova versão do código: # é um evento de pressionamento do botão do mouse? if evento.type == MOUSEBUTTONDOWN: # o usuário pressionou o botão 1 (botão esquerdo)? if evento.button == 1: print("O botão esquerdo foi pressionado.") # o botão central foi pressionado? elif evento.button == 2: print("O botão central (da rodinha) foi pressionado.") # o botão direito foi pressionado? elif evento.button == 3: print("O botão direito foi pressionado.") else: print("Não sei qual botão foi pressionado.") Execute o código novamente e você verá mensagens parecidas com: O botão esquerdo foi pressionado. O botão esquerdo foi pressionado. O botão direito foi pressionado. O botão direito foi pressionado. O botão esquerdo foi pressionado. O botão central (da rodinha) foi pressionado. O botão central (da rodinha) foi pressionado. Para finalizar, veja agora como podemos detectar o evento MOUSEBUTTONDOWN e retornar as coordenadas x e y nas quais o evento ocorreu: # é um evento de pressionamento do botão do mouse? if evento.type == MOUSEBUTTONDOWN: # agora vamos retornar as coordenadas do evento posicao = pygame.mouse.get_pos() print("O evento MOUSEBUTTONDOWN ocorreu nas coordenadas x = {0}; y = {1}" .format(posicao[0], posicao[1])) Ao executar o código agora nós teremos o seguinte resultado: O evento MOUSEBUTTONDOWN ocorreu nas coordenadas x = 8; y = 188 |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |