PyGame의 Mousebuttondown 이벤트

PyGame의 Mousebuttondown 이벤트

  1. Python 2.7에 PyGame 설치
  2. Python 3.5에 PyGame 설치
  3. 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 이벤트는 마우스를 클릭한 후 누르고 있는 시간에 관계없이 왼쪽 또는 오른쪽에 있는 마우스 버튼을 클릭하면 발생합니다.

다음 코드에서는 게임 창을 설정하고 창의 길이와 높이를 픽셀 단위로 정의했습니다. 이벤트를 캡처하기 위해 main 루프(while 루프)와 event 루프(for 루프)를 만들었습니다.

for 루프에서 if 조건을 사용하여 이벤트 유형을 확인했습니다. MOUSEBUTTONDOWN 이벤트가 트리거되면 MOUSEBUTTONDOWN event occurred라는 메시지가 표시됩니다.

사용자가 게임 창에서 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

  • PyGame의 pygame.display.set_mode