欢迎访问宙启技术站
智能推送

Pygame.locals中各种事件类型的详解

发布时间:2023-12-28 07:31:10

在Pygame中,可以使用Pygame.locals模块来处理各种不同类型的事件。下面是一些常见的事件类型的详细解释以及使用示例:

1. QUIT事件:当用户关闭窗口时发生。示例代码如下:

import pygame
from pygame.locals import *

pygame.init()

screen = pygame.display.set_mode((640, 480))

while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()

2. KEYDOWN和KEYUP事件:当用户按下或松开键盘上的键时发生。示例代码如下:

import pygame
from pygame.locals import *

pygame.init()

screen = pygame.display.set_mode((640, 480))

while True:
    for event in pygame.event.get():
        if event.type == KEYDOWN:
            if event.key == K_SPACE:
                print("Space key pressed")
        elif event.type == KEYUP:
            if event.key == K_SPACE:
                print("Space key released")

3. MOUSEMOTION事件:当用户移动鼠标时发生。示例代码如下:

import pygame
from pygame.locals import *

pygame.init()

screen = pygame.display.set_mode((640, 480))

while True:
    for event in pygame.event.get():
        if event.type == MOUSEMOTION:
            print("Mouse moved to", event.pos)

4. MOUSEBUTTONDOWN和MOUSEBUTTONUP事件:当用户按下或松开鼠标按钮时发生。示例代码如下:

import pygame
from pygame.locals import *

pygame.init()

screen = pygame.display.set_mode((640, 480))

while True:
    for event in pygame.event.get():
        if event.type == MOUSEBUTTONDOWN:
            if event.button == 1:
                print("Left mouse button pressed at", event.pos)
            elif event.button == 3:
                print("Right mouse button pressed at", event.pos)
        elif event.type == MOUSEBUTTONUP:
            if event.button == 1:
                print("Left mouse button released at", event.pos)
            elif event.button == 3:
                print("Right mouse button released at", event.pos)

5. ACTIVEEVENT事件:当窗口活动状态发生变化时(例如,窗口被最小化或恢复),发生活动事件。示例代码如下:

import pygame
from pygame.locals import *

pygame.init()

screen = pygame.display.set_mode((640, 480))

while True:
    for event in pygame.event.get():
        if event.type == ACTIVEEVENT:
            if event.gain == 0:
                print("Window lost focus")
            elif event.gain == 1:
                print("Window gained focus")

这些只是一些常见的事件类型和使用示例,Pygame还提供了许多其他类型的事件,可以在Pygame文档中查看完整列表。根据需要选择适合自己的事件类型来处理不同的交互操作。