PyGame 中的 Mousebuttondown 事件

Fariba Laiq 2023年1月30日
  1. 在 Python 2.7 中安装 PyGame
  2. 在 Python 3.5 中安装 PyGame
  3. 在 PyGame 中检测 MOUSEBUTTONDOWN 事件
PyGame 中的 Mousebuttondown 事件

PyGame,顾名思义,是 Python 中的开源多媒体库,主要用于制作视频游戏,包括图形、声音、视觉等。如今,游戏编程非常成功。

它是一个跨平台库,可以在多个平台上使用一个代码库。该库包含许多图形和声音模块,因为没有声音或图形,任何游戏都是毫无意义的。

本教程演示如何使用 PyGame 检测 MOUSEBUTTONDOWN 事件并触发一个动作作为响应。

在 Python 2.7 中安装 PyGame

要使用这个库,我们应该先安装它。如果你运行的是 Python 2.7 版本,你应该使用以下命令安装 PyGame。

None

在 Python 3.5 中安装 PyGame

如果你运行的是 Python 3.5 版,则应使用以下命令。

#Python 3.x
pip3 install pygame

在 PyGame 中检测 MOUSEBUTTONDOWN 事件

在任何游戏中,从玩家那里获取输入并执行动作是游戏的主要部分。MOUSEBUTTONDOWN 事件发生在你单击鼠标按钮时,无论是向左还是向右,无论你在单击后按住多少时间。

在下面的代码中,我们设置了游戏窗口并以像素为单位定义了窗口的长度和高度。我们创建了主循环(while 循环)和事件循环(for 循环)来捕获事件。

for 循环中,我们使用 if 条件检查了事件的类型。当触发 MOUSEBUTTONDOWN 事件时,将显示一条消息显示 MOUSEBUTTONDOWN 事件发生

如果用户通过按下游戏窗口中的 X 按钮退出游戏,QUIT 事件被触发,作为响应,游戏结束,窗口将退出。在这里,我们在 PyGame 窗口中按下了一次鼠标按钮。

示例代码:

# Python 3.x
import pygame
import sys

pygame.init()
display = pygame.display.set_mode((500, 500))
while True:
    for event in pygame.event.get():
        if event.type == pygame.MOUSEBUTTONDOWN:
            print("MOUSEBUTTONDOWN event occured")
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

输出:

#Python 3.x
MOUSEBUTTONDOWN event occured

如果要检查按下了哪个鼠标按钮,向左还是向右,可以检查 pygame.mouse.get_pressed() 方法返回的值。此方法返回三个值,每个鼠标按钮一个。

在这里,我们将返回的值存储在一个列表中。每个鼠标按钮都与鼠标左键、鼠标中键、鼠标右键、鼠标滚轮向上和鼠标滚轮向下关联的值分别为 1、2、3、4、5。

在下面的代码中,我们检查了单击了哪个鼠标按钮并相应地打印了一条消息。我们按下了鼠标左键和右键。

示例代码:

# Python 3.x
import pygame
import sys

pygame.init()
display = pygame.display.set_mode((500, 500))
while True:
    for event in pygame.event.get():
        if event.type == pygame.MOUSEBUTTONDOWN:
            mouse_presses = pygame.mouse.get_pressed()
            if mouse_presses[0]:
                print("Left mouse button pressed")
            if mouse_presses[2]:
                print("Right mouse button pressed")
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

输出:

#Python 3.x
Left mouse button pressed
Right mouse button pressed
作者: Fariba Laiq
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn