In diesem Artikel erfahren wir, wie wir mit Mauseingaben im Arcade-Modul in Python umgehen können.

In Arcade können Sie die Mauseingaben einfach mit diesen Funktionen handhaben:

on_mouse_motion():

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

Parameter:



  • x : x-Koordinate
  • y : y-Koordinate
  • dx : Änderung der x-Koordinate
  • dy : Änderung der y-Koordinate

on_mouse_press():

Syntax: on_mouse_press( x, y, Taste, Modifikatoren)

Parameter:

  • x : x-Koordinate
  • y : y-Koordinate
  • Taste : Taste, die gedrückt wird
  • modifiers : Bitweises 'und' aller Modifikatoren (Shift, Strg, Num Lock), die während dieses Ereignisses gedrückt wurden.

Die Funktion on_mouse_motion() wird immer dann aufgerufen, wenn der Benutzer die Maus bewegt. In ähnlicher Weise wird on_mouse_press() immer dann aufgerufen, wenn ein Benutzer eine Maustaste drückt.

Bewegung mit Mauseingaben

Hier erstellen wir ein einfaches Programm mit dem Arcade-Modul, um unseren Charakter mit Mauseingaben zu bewegen.

Im folgenden Beispiel erstellen wir eine MainGame()-Klasse. Innerhalb dieser Klasse initialisieren wir zuerst die x- und y-Startkoordinate des Players. Dann erstellen wir drei Funktionen innerhalb dieser Klasse.

  • on_draw():- Innerhalb dieser Funktion starten wir das Rendern mit arcade.start_render() und zeichnen dann unseren Spieler.
  • on_mouse_motion():- Diese Funktion wird immer dann aufgerufen, wenn der Benutzer die Maus bewegt. Innerhalb dieser Funktion ändern wir die x- und y-Koordinate des Players.

Nachfolgend die Umsetzung:

Python3

# 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()

Ausgabe:

Behandeln Sie Mausklicks

Um nun Mausklicks zu verarbeiten, erstellen wir eine neue Funktion namens „on_mouse_press“. Diese Funktion wird jedes Mal aufgerufen, wenn der Benutzer auf eine Maustaste klickt.

Python3

# 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()

Ausgabe: