pygame事件处理机制

键盘事件及类型

键盘按下后会产生三个属性

pygame事件处理机制_第1张图片

unicode 与操作系统平台有关,一般不使用

pygame事件处理机制_第2张图片

键盘常量名称如下

pygame事件处理机制_第3张图片

pygame事件处理机制_第4张图片

pygame事件处理机制_第5张图片

 

鼠标事件及属性

pygame事件处理机制_第6张图片

pygame事件处理机制_第7张图片

pygame事件处理机制_第8张图片

 

事件打印

import pygame, sys

pygame.init()
screen = pygame.display.set_mode((600, 400))
pygame.display.set_caption("Pygame事件处理")

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
        elif event.type == pygame.KEYDOWN:
            if event.unicode == "":
                print("[KEYDOWN]:", "#", event.key, event.mod)
            else:
                print("[KEYDOWN]:", event.unicode, event.key, event.mod)
        elif event.type == pygame.MOUSEMOTION:
            print("[MOUSEMOTION]:", event.pos, event.rel, event.buttons)
        elif event.type == pygame.MOUSEBUTTONUP:
            print("[MOUSEBUTTONUP]:", event.pos, event.button)
        elif event.type == pygame.MOUSEBUTTONDOWN:
            print("[MOUSEBUTTONDOWN]:", event.pos, event.button)

    pygame.display.update()

 

事件处理函数

pygame事件处理机制_第9张图片

pygame事件处理机制_第10张图片

pygame事件处理机制_第11张图片

事件队列只能存128个事件,满了多的丢弃,

pygame事件处理机制_第12张图片

pygame事件处理机制_第13张图片

pygame事件处理机制_第14张图片

import pygame, sys

pygame.init()
screen = pygame.display.set_mode((600, 400))
pygame.display.set_caption("Pygame事件处理")
fps = 1
fclock = pygame.time.Clock()
num = 1

while True:
    uevent = pygame.event.Event(pygame.KEYDOWN, {"unicode": 123, "key": pygame.K_SPACE, "mod": pygame.KMOD_ALT})
    pygame.event.post(uevent)
    num = num + 1
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
        elif event.type == pygame.KEYDOWN:
            if event.unicode == "":
                print("[KEYDOWN {}]:".format(num), "#", event.key, event.mod)
            else:
                print("[KEYDOWN {}]:".format(num), event.unicode, event.key, event.mod)

    pygame.display.update()
    fclock.tick(fps)

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Python模块使用)