Python 3.x pygame:pygame.KEYDOWN不工作
我对python和pygame都是新手,只是尝试测试keydown事件,但它不起作用……请帮助 因为Pygame只在PythonV3.2和下面的上运行,所以我现在无法测试它。Python 3.x pygame:pygame.KEYDOWN不工作,python-3.x,pygame,Python 3.x,Pygame,我对python和pygame都是新手,只是尝试测试keydown事件,但它不起作用……请帮助 因为Pygame只在PythonV3.2和下面的上运行,所以我现在无法测试它。 但是如果我没有完全停药,我想这是因为你没有更新显示器 考虑这一变化: import pygame pygame.init() events = pygame.event.get() while True: for event in events: if event.type == pygam
但是如果我没有完全停药,我想这是因为你没有更新显示器 考虑这一变化:
import pygame
pygame.init()
events = pygame.event.get()
while True:
for event in events:
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_1:
print('this should work!!')
这将更新显示器并触发显示器中发生的事件。如果你不这样做,你会得到一个陈旧的窗口,它不会触发、渲染或产生任何东西,除了初始渲染 同样,在许多GL库中,您需要清空事件缓冲区,否则会出现相同的效果。这意味着您将得到一个陈旧的窗口,它只是“挂起”,因为事件试图“进入”缓冲区,但您没有定期清空它。(有些图形库甚至要求您轮询事件池,即使它是空的,只是为了“释放”事件队列) 因此,在使用图形时请记住:
- 始终调用事件缓冲区(即使它是空的)
- 始终翻转/更新场景,否则应用程序会过时
while
循环之前添加类似的内容,它应该可以工作:
import pygame
pygame.init()
events = pygame.event.get()
while True:
for event in events:
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_1:
print('this should work!!')
pygame.display.flip()
通常,在循环之前,您还可以使用clock=pygame.time.clock()
、在clock.tick中使用的每秒帧数(每秒帧数)
、一些对象/玩家/矩形等设置时钟,但我将留给您
以下是您的代码,其中包含启用关键事件的最小显示设置:
WIDTH=600
HEIGHT=480
SCREEN = pygame.display.set_mode((WIDTH, HEIGHT))
import pygame
pygame.init()
WIDTH=600
HEIGHT=480
SCREEN = pygame.display.set_mode((WIDTH, HEIGHT))
while True:
events = pygame.event.get()
for event in events:
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_1:
print('this DOES work! :)')