几天前我发布了一个类似的问题,但我已经细化了这个问题: 当我在同一个事件循环中同时拥有 MOUSEBUTTONDOWN 和 VIDEORESIZE 时,它确实起作用了...当我按下鼠标时,它还会打印仅当 MOUSEBUTTONUP 事件发生时才应打印的语句...。您自己尝试这个问题是杀了我..
import pygame
from pygame.locals import *
from sys import exit
LEFT = 1
size = 520,630
running = 1
screen = pygame.display.set_mode(size, RESIZABLE, 32)
#screen = pygame.display.set_mode((size))
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = 0
if event.type == pygame.VIDEORESIZE:
size = event.size
pygame.display.set_caption("Window resized to "+str(event.size))
if event.type == pygame.MOUSEBUTTONDOWN and event.button == LEFT:
print "You pressed the left mouse button at (%d, %d)" % event.pos
if event.type == pygame.MOUSEBUTTONUP and event.button == LEFT:
print "You released the left mouse button at (%d, %d)" % event.pos
screen = pygame.display.set_mode(size, RESIZABLE, 32)
screen.fill((0, 0, 0))
pygame.display.flip()
请您参考如下方法:
不要在每次事件时都更新屏幕,这会大大减慢您的程序。它在我的电脑上太慢了,我无法理解鼠标事件。只需移动几行代码即可解决此问题,并且运行良好。
import pygame
from pygame.locals import *
from sys import exit
LEFT = 1
size = 520,630
running = 1
screen = pygame.display.set_mode(size, RESIZABLE, 32)
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = 0
if event.type == pygame.VIDEORESIZE:
size = event.size
pygame.display.set_caption("Window resized to "+str(event.size))
screen.fill((0, 0, 0))
pygame.display.flip()
if event.type == pygame.MOUSEBUTTONDOWN and event.button == LEFT:
print "You pressed the left mouse button at (%d, %d)" % event.pos
if event.type == pygame.MOUSEBUTTONUP and event.button == LEFT:
print "You released the left mouse button at (%d, %d)" % event.pos
