在pygame中检测用户事件

2 投票
1 回答
785 浏览
提问于 2025-04-18 10:05

我有一段代码,想在pygame中对用户的操作做出反应:

import pygame
from pygame.locals import *
from pygame.time import set_timer
from sys import exit

def timerFunc():
    print "Timer CallBack"

pygame.init()

screen = pygame.display.set_mode((640,480),0,32)
set_timer(USEREVENT+1, 1000)

while True:
    pressed_keys = pygame.key.get_pressed()

    if pressed_keys[K_SPACE]:
        exit()

    for event in pygame.event.get():
        print event
        if event == QUIT:
            exit()
        if event == USEREVENT+1:
            timerFunc()

可惜的是,timerFunc()这个函数没有被执行,事件是通过set_timer()这个函数传递的,因为我在输出中看到:

<Event(25-UserEvent {'code': 0})

1 个回答

3

你需要使用 event.type 这个属性:

for event in pygame.event.get():
    print event
    if event.type == QUIT:
        exit()
    if event.type == USEREVENT+1:
        timerFunc()

撰写回答