Neste artigo, aprenderemos como podemos lidar com as entradas do mouse no módulo de arcade em Python.

No Arcade, você pode manipular facilmente as entradas do mouse usando estas funções:

on_mouse_motion():

Sintaxe: on_mouse_motion (x, y, dx, dy)

Parâmetros:



  • x: coordenada x
  • y: coordenada y
  • dx: mudança na coordenada x
  • dy: mudança na coordenada y

on_mouse_press():

Sintaxe: on_mouse_press (x, y, botão, modificadores)

Parâmetros:

  • x: coordenada x
  • y: coordenada y
  • botão: botão que está pressionado
  • modificadores: Bitwise 'e' de todos os modificadores (shift, ctrl, num lock) pressionados durante este evento.

A função on_mouse_motion() será chamada sempre que o usuário mover o mouse. Da mesma forma, on_mouse_press() será chamado sempre que um usuário pressionar um botão do mouse.

Movimento usando entradas do mouse

Aqui, criaremos um programa simples usando o módulo de arcade para mover nosso personagem usando entradas do mouse.

No exemplo abaixo, vamos criar uma classe MainGame(). Dentro desta classe primeiro, inicializaremos as coordenadas xey iniciais do jogador. Em seguida, criaremos três funções dentro desta classe.

  • on_draw(): - Dentro desta função, iniciaremos a renderização usando arcade.start_render() e então desenharemos nosso jogador.
  • on_mouse_motion(): - Esta função será chamada sempre que o usuário mover o mouse. Dentro desta função, vamos mudar as coordenadas xey do jogador.

Abaixo está a implementação:

# Importing arcade module
import arcade
  
# Creating MainGame class
class MainGame(arcade.Window):
    def __init__(self):
        super().__init__(600, 600, title="Keyboard Inputs")
  
        # Starting location of player
        self.x = 100
        self.y = 100
  
    # Creating on_draw() function to draw on the screen
    def on_draw(self):
        arcade.start_render()
  
        # Drawing our player
        arcade.draw_circle_filled(self.x, self.y, 25,
                                  arcade.color.GREEN)
  
    # Creating function to check the position
    # of the mouse
    def on_mouse_motion(self, x, y, dx, dy):
        """
        Called whenever the mouse moves.
        """
        self.x = x
        self.y = y
  
# Calling MainGame class
MainGame()
arcade.run()

Saída:

Lidar com cliques do mouse

Agora, para lidar com os cliques do mouse, vamos criar uma nova função chamada “on_mouse_press”. Esta função será chamada sempre que o usuário clicar em um botão do mouse.

# Importing arcade module
import arcade
  
# Creating MainGame class       
class MainGame(arcade.Window):
    def __init__(self):
        super().__init__(600, 600, title="Keyboard Inputs")
  
        # Starting location of player
        self.x = 100
        self.y = 100
  
    # Creating on_draw() function to draw on the screen
    def on_draw(self):
        arcade.start_render()
  
        # Drawing our player
        arcade.draw_circle_filled(self.x, self.y,25,
                                     arcade.color.GREEN )
          
    # Creating function to check the position
    # of the mouse
    def on_mouse_motion(self, x, y, dx, dy):
        """
        Called whenever the mouse moves.
        """
        self.x = x
        self.y = y
      
    # Creating function to check the mouse clicks
    def on_mouse_press(self, x, y, button, modifiers):
        print("Mouse button is pressed")
                
# Calling MainGame class       
MainGame()
arcade.run()

Saída:

 Atenção geek! Fortaleça suas bases com o Python Programming Foundation Course e aprenda o básico.