PyGame 中的 Mousebuttondown 事件

Fariba Laiq 2023年1月30日 2022年7月18日
  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。

#Python 2.7
conda install -c cogsci pygame

在 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
Author: 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

相關文章 - Pygame Function